【发布时间】:2019-01-29 17:26:43
【问题描述】:
我想制作一个 Android 聊天应用程序。所以我想知道如何在创建新文档时自动从 Firebase Firestore 获取数据?实际上我不想使用添加快照侦听器,因为它可以提供单个文档的实时数据更改,但想找出实时更新的 Firebase Firestore 文档。请给我建议。
【问题讨论】:
标签: java android firebase google-cloud-firestore
我想制作一个 Android 聊天应用程序。所以我想知道如何在创建新文档时自动从 Firebase Firestore 获取数据?实际上我不想使用添加快照侦听器,因为它可以提供单个文档的实时数据更改,但想找出实时更新的 Firebase Firestore 文档。请给我建议。
【问题讨论】:
标签: java android firebase google-cloud-firestore
我不知道您是否可以在没有快照侦听器的情况下执行此操作。 检查此代码,如果它是您想要的。
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();
}
}
});
}
【讨论】:
【讨论】:
addSnapshotListener 为您提供解决方案的答案,因为您在问题中明确要求:I do not wanna use add snapshot listener?!
get()方法吧?
get() 电话。如果你想要更多,你可以使用 Firebase-UI,就像我在这个 post 的回答中解释的那样,我已经解释了如何从 Cloud Firestore 数据库中检索数据并将其显示在RecyclerView 使用 FirebaseRecyclerAdapter。在这种情况下,您将能够收到您添加的每个新文档。
我不知道你是否可以使用 firestore 来做到这一点,但使用实时数据库你可以使用 .on()。如果您的应用程序的其余部分使用 Firestore,则每个项目都可以使用云 Firestore 和实时数据库。文档非常简单。
【讨论】: