我想制作一个Android聊天应用程序。因此,我想知道在创建新文档时如何自动从Firebase Firestore获取数据吗?实际上,我不想使用添加快照侦听器,因为它提供了单个文档的实时数据更改,但我想找出实时更新的Firebase Firestore文档。请建议我。
答案 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和实时数据库。这些文档非常简单。