如何自动检测Firebase Firestore集合中的新文档?

时间:2018-08-23 10:46:00

标签: java android firebase google-cloud-firestore

我想制作一个Android聊天应用程序。因此,我想知道在创建新文档时如何自动从Firebase Firestore获取数据吗?实际上,我不想使用添加快照侦听器,因为它提供了单个文档的实时数据更改,但我想找出实时更新的Firebase Firestore文档。请建议我。

3 个答案:

答案 0 :(得分:4)

我不知道没有快照侦听器是否可以执行此操作。 如果需要,请检查此代码。

private void addRealtimeUpdate() {
    DocumentReference contactListener=db.collection("PhoneBook").document("Contacts");
    contactListener.addSnapshotListener(new EventListener < DocumentSnapshot > () {
    @Override
    public void onEvent(DocumentSnapshot documentSnapshot, 
        FirebaseFirestoreException e) {
         if (e != null) {
            Log.d("ERROR", e.getMessage());
            return;
         }
         if (documentSnapshot != null && documentSnapshot.exists()) {
            Toast.makeText(MainActivity.this, "Current data:" + 
          documentSnapshot.getData(), Toast.LENGTH_SHORT).show();
        }
     }
    });
  }

答案 1 :(得分:2)

为解决此问题,建议您使用CollectionReference的get()方法。这是Firebase实时数据库中的对应addListenerForSingleValueEvent()方法。

  

执行查询并将结果作为QuerySnapshot返回。

如果您要使用Firebase-UI库,建议使用 this ,它可以从Cloud Firestore数据库检索数据并将其显示在RecyclerView中使用FirestoreRecyclerAdapter

答案 2 :(得分:0)

我不知道您是否可以使用Firestore进行操作,但是对于实时数据库,可以使用.on()。如果您的应用程序的其余部分正在使用Firestore,则每个项目都可以使用云Firestore和实时数据库。这些文档非常简单。