- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Firebase 数据库,并且希望脱机持久性也能正常工作。我发现,在离线模式下调用DatabaseReference.updateChildren时,会立即触发值监听器回调,而OnCompletionListener仅在网络恢复时才会触发。这是正确的理解吗?如果是这样,如果 OnCompletionListener 成功或失败,客户端应该做什么。
具体来说 -
如果 OnCompletionListener 失败,是否会在本地回滚更改并使用回滚的值触发所有值监听器回调?
什么情况下OnCompletionListener会返回失败?是否有案件需要重审?
监听 OnCompletionListener 的成功而不是 ValueChangeListener 中的回调的典型用例是什么?
最佳答案
Is that the correct understanding?
是的,确实如此。
当网络连接丢失(用户设备上没有网络连接)时,onComplete()
和 onFailure()
都不会被触发。这种行为是有道理的,因为只有当数据在 Firebase 服务器上提交(或拒绝)时,任务才被视为已完成。
没有回滚,因为当数据更新时,它首先写入数据库的本地版本,显然当使用以下代码行启用持久性时:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
当 Firebase 服务器因 Firebase 安全规则导致权限不足
而拒绝更新时。
这是典型的用例,用于监听 OnCompletionListener 的成功。
关于java - 在 Android 上处理 Firebase DatabaseReference updateChildren OnCompletionListener 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50291875/
我使用的是后 Google I/O 2016 Firebase 数据库。 在 DatabaseReference 上,有两个类似的方法,似乎只是完成回调不同。 一个是void setValue(Obj
我尝试过滤 Firebase 的数据库,但出现此错误: Error:(26, 107) error: incompatible types: Query cannot be converted to
使用 Firebase 数据库时,我可以使用 DatabaseReference 对象的 push() 方法生成 key ,如下面的代码 fragment 所示: FirebaseDatabase.g
我正在尝试通过获取数据库引用来向 firebase 数据库添加一些信息,但它给出了以下错误: Caused by: java.lang.NoSuchMethodError: 类 Lcom/google
我的实时数据库 (firebase) 中有不同城市的位置。 以下是我的数据库结构。 但是根据firebase教程,我尝试了以下代码来获取数据 cityA.queryOrdered(byChild: "
假设我有这个 firebase JSON 结构: 我需要得到属性“from”等于“this”的所有问题。 我知道我可以使用 Volley 创建一个 StringRequest 并从我的 questio
不是 Android 问题。 用于查询数据库的方法: private void db() throws FileNotFoundException, IOException { FileInp
我正在尝试从 AndroidStudio 应用将数据写入 Firebase 的实时数据库。我必须在不同的 child 中编写一些Java HashMap,但我注意到当HashMap的大小大于120k时
如果我有一个DatabaseReference,从中获取一个Query,然后向那个Query 添加一个监听器,我是否必须调用Query 引用上的 removeEventListener,或者我可以将其
我不太明白什么时候应该使用DatabaseReference,什么时候应该使用DataSnapshot。 在我的应用程序中,我似乎在没有真正区别的情况下使用它们(可能除了写入 Firebase 之外,
嘿,我需要在某个时候移除这个监听器,还是它会自行移除?我在我的 Activity 中的一个 fragment 中调用了这个,用户可以在不破坏这个 View 的情况下转到另一个 View 。因此不确定我
我使用 firebase 作为我的应用程序的后端。首先,我使用 Firebase 实例将对象保存到 firbase 数据库,这工作得很好,但我必须更改实现以从保存的对象中获取 key 以供我进一步实现
我目前正在 Android 上开发一个研究所级别的聊天消息传递应用程序。我使用 Firebase 作为我的云服务器。目前,我在 MainActivity 的以下行中遇到 DatabaseReferen
我得到了Incompatible types: String cannot be converted to DatabaseReference onItemClick 中的错误用于获取 Firebas
在 Firebase 太棒了中,您可以执行此操作 var r1: DatabaseReference? = nil 然后是这个 r1 = Database.database().ref
我使用 Firebase 实时数据库并希望在事务处理中为我的 vector 添加值,即获取 vector 、更新、设置 vector 。 我写了一些简单的 labda,但一直坚持这些代码无法编译。
不好意思问了个奇怪的问题 昨天我不得不更新我的 firebase pod,在那之前一切都很好,但在那之后,我再也无法检索数据了 这是我的代码 // let userID = FIRAuth.
好的,欢迎对标题提出建议,但我想不出更好的。 但这是我想做的: 我正在尝试为 Flutter 创建一个 GeoFire 插件。 GeoFire 需要对 Firebase 数据库的引用,但 Flutte
这是一个广泛的问题,涉及在 Firebase 数据上运行查询与不使用查询类访问数据之间的区别。 下面是一个查询的结构,取自文档并进行了一些缩减: DatabaseReference myRef = d
例如,我现在的引用是 private FirebaseDatabase database; private DatabaseReference reference; database = Fireba
我是一名优秀的程序员,十分优秀!