Ash*_*dav 1 android firebase google-cloud-firestore
下面是我用来在recyclerview中检索文档数据的代码。工作正常。但是,无论何时添加新文档,它都不会实时更新。我知道快照侦听器仅用于此目的,但很难使其工作。任何帮助将不胜感激。:)
mFirestore.collection("Users").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()){
for (DocumentSnapshot document : task.getResult()) {
Message message = document.toObject(Message.class);
messageList.add(message);
mAdapter.notifyDataSetChanged();
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
您应该像这样将快照事件分开..然后您可以轻松地找出问题所在
mFirestore.collection("Users")
.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot snapshots,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w("TAG", "listen:error", e);
return;
}
for (DocumentChange dc : snapshots.getDocumentChanges()) {
switch (dc.getType()) {
case ADDED:
Log.d("TAG", "New Msg: " + dc.getDocument().toObject(Message.class));
break;
case MODIFIED:
Log.d("TAG", "Modified Msg: " + dc.getDocument().toObject(Message.class));
break;
case REMOVED:
Log.d("TAG", "Removed Msg: " + dc.getDocument().toObject(Message.class));
break;
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
可能是由[MODIFIED]事件而非[ADDED]事件触发的快照。
| 归档时间: |
|
| 查看次数: |
4782 次 |
| 最近记录: |