如何在集合中更改时知道在firestore中?

时间:2017-12-21 16:07:50

标签: java android firebase google-cloud-firestore

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

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

有人可以提出推荐吗?

1 个答案:

答案 0 :(得分:2)

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默认启用了数据持久性。因此,您无需将数据保存在内部数据库中。