如何观察 Firebase 实时数据库的变化

Posted

技术标签:

【中文标题】如何观察 Firebase 实时数据库的变化【英文标题】:How to watch for changes in firebase realtme DB 【发布时间】:2019-10-26 12:25:25 【问题描述】:

我正在开发一个管理面板来获取用户关于食品订单的请求,所以我想在有新订单时收到通知。所以问题是有什么方法可以观察数据库的变化,如果有,请发出通知(Snackbar)

【问题讨论】:

【参考方案1】:

您可以通过 value 事件监听变化。 阅读更多详情:https://firebase.google.com/docs/database/web/read-and-write#listen_for_value_events

【讨论】:

【参考方案2】:

一旦数据库更新,valueeventlistner 将再次带来所有节点。要仅带上最后添加的节点,请使用下面。

Firebase ref = new Firebase("YOUR-URL-HERE/PATH/TO/YOUR/STUFF");

ref.addChildEventListener(new ChildEventListener() 
    public void onChildAdded(DataSnapshot dataSnapshot, String previousKey) 
    
    public void onChildChanged(DataSnapshot dataSnapshot, String s) 
    
    public void onChildRemoved(DataSnapshot dataSnapshot) 
    
    public void onChildMoved(DataSnapshot dataSnapshot, String s) 
    
    public void onCancelled(FirebaseError firebaseError)  
);

onChildAdded() 将仅针对每个新的食品订单被撤销。您也可以使用其他方法,这将为您提供良好的灵活性。即使订单被移除,您也可以通过 onChildRemoved() 获取它。

【讨论】:

以上是关于如何观察 Firebase 实时数据库的变化的主要内容,如果未能解决你的问题,请参考以下文章

如何通过在 swift 中实现观察者从 Firebase 实时数据库中获取嵌套数据

在 Swift 中的 Firebase 实时数据库观察方法中具有异步函数的 DispatchGroup

是否可以在 Vue 应用程序中呈现 Firebase 数据的实时变化?

Firebase 实时数据库:如何监听节点的特定项目子集?

使用 Firebase 函数将实时数据库中的数据发送到电子邮件

Firebase 实时数据库能否有效地循环浏览数十亿条帖子并由发布它们的用户检索?