firebase - 停止 Firebase 排队的方法

标签 firebase

假设客户端 1 有:

messagesRef = new Firebase('https://yvv2pmvobjc.firebaseio-demo.com/');
messagesRef.on('child_changed',
               function (data, prev) { alert ("Changed " + data.val()); } ); `

假设客户端 2 有:

messagesRef = new Firebase('https://yvv2pmvobjc.firebaseio-demo.com/');
Firebase.goOffline();
item = messagesRef.child('baz'); 
item.set("1");
item.set("2");
item.set("3");
Firebase.goOnline();

此代码将生成包含 Change 1Change 2Change 3 的通知。我希望它简单地返回 Change 3,而不处理中间步骤。我希望客户端 1 根本不将中间步骤发送到远程 Firebase。有办法实现吗?

最佳答案

继续我的评论并扩展安德鲁的......

假设您有两个客户端 A 和 B。客户端 B 负责更新“Baz”,而 A 只是监听。有几种情况需要考虑。

客户端 A 和 B 均已连接 - B 多次更新“Baz”,A 几乎实时接收所有这些更新。

客户端 A 保持在线,但 B 离线(代码中概述的场景) - A 仍与 Firebase 连接,因此正在等待更新。 B 处于离线状态,因此对“Baz”的更新由本地 Firebase 脚本排队。 B 上线并触发 Firebase 更新。 A 仍然在线并正在监听,因此它几乎实时接收所有这些更新。

客户端 A 离线,而 B 保持在线。 B 多次更新“Baz”。 “Baz”的最终值为“4”,过了一会儿,A上线了。当 A 上线时,Firebase 只会向其发送 Baz 的最新值,因为 A 不在线并且在中间更新发生时监听。

最后,如果客户端 A 和 B 都离线,那么 B 会将其更新排队,这实际上取决于哪一个首先上线来弄清楚会发生什么。在这种情况下,它会演变成其他场景之一。

关于firebase - 停止 Firebase 排队的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21103691/

相关文章:

javascript - 云功能 |登录 Firebase 并返回访问 token

ios - 使用 firebase 中添加的 child 从 firebase 获取数据

javascript - 与助焊剂 react : is this the dogmatic pattern or are there equal/better options?

iOS Firebase 崩溃报告设置时崩溃

ios - 如何将多个数据写入firebase?

firebase - Firestore 无效权限 : request. auth.uid in

android - Gradle 依赖项排除

ios - 类似 swift firebase 的按钮

swift - 在同一个子 Firebase 中添加超过 1 个信息时遇到问题

java - 关于 "Error: Type com.google.firebase.iid.zzav is referenced as an interface from com.google.firebase.messaging.zzd"的想法?