【问题标题】:How to know in firestore when a collection have changes?当集合发生变化时,如何在 Firestore 中知道?
【发布时间】:2017-12-21 16:07:49
【问题描述】:

我有一个包含餐厅菜单项目的集合,我想知道何时添加新项目或有更改(价格、名称、描述),因为我想将此通知应用程序并下载此更改在内部数据库中。

我试图创建一个firebase function 来修改一个名为 version 的字段,这样应用程序中的 campare 版本与集合的 firebase 版本,但我真的不知道如何使用 firebase 函数。

有人可以推荐吗?

【问题讨论】:

标签: java android firebase google-cloud-firestore


【解决方案1】:

Cloud Firestore 是一个灵活、可扩展的数据库,它通过realtime listeners 使您的数据在客户端应用程序之间保持同步,并为移动和网络应用程序提供offline support

因此,为了知道您的数据库中是否发生了某些更改,您需要在特定位置附加一个侦听器。假设您有一个名为 cities 的集合和一个名为 SF 的文档,请使用以下代码。这是一个直截了当的例子。

DocumentReference docRef = db.collection("cities").document("SF");
docRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
    @Override
    public void onEvent(@Nullable DocumentSnapshot snapshot, @Nullable FirebaseFirestoreException e) {
        // see which fields changed
    }
});

与 Firebase 实时数据库不同,Cloud Firestore 默认启用数据持久性。因此,无需将您的数据也保存在内部数据库中。

【讨论】:

  • 非常感谢 Alex,您的回答让我对如何在我的应用程序中处理离线模式有了新的认识。因为我只想在有新的时候才带来改变。
猜你喜欢
  • 2018-12-14
  • 1970-01-01
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
相关资源
最近更新 更多