gpt4 book ai didi

java - 如何知道 Snapshot Listener 结束了 |火炉?

转载 作者:太空狗 更新时间:2023-10-29 13:04:30 26 4
gpt4 key购买 nike

我有这段代码可以从特定的子集合中获取数据:

 db.collection("groups").document(id.get(i)).collection("members")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
id.add(document.getId());
Log.e(Tag, document.getId() + " => " + document.getData());

if (task.getResult().isEmpty()) {
Log.d(Tag, "onSuccess: LIST EMPTY");
return;
} else {
// Convert the whole Query Snapshot to a list
// of objects directly! No need to fetch each
// document.
Log.e(Tag, task.getResult() + "");
typeAll = task.getResult().toObjects(GroupMembers.class);
}
}
} else {
Log.e(Tag, "Error getting documents: ", task.getException());
}

但是我需要在通过快照获取所有数据后调用一个方法。如何实现?我应该测试什么?

最佳答案

How to know that Snapshot Listener is finished?

Snapshot Listener 一直在监听变化,除非你是 removing it .

如果您想知道数据何时完成从数据库加载,请注意您无法知道所有成员何时完成下载,因为Cloud Fireatore是一个实时数据库 和获取数据可能永远不会完成。这就是为什么被命名为实时数据库的原因,因为在任何时候,members 集合下的数据都可以更改,可以添加或删除属性。

只有当您写入更新数据时,您才可以使用CompletionListener,并且当 Firebase 确认该操作时您会收到通知服务器,但在读取数据时不能使用此接口(interface)。

关于java - 如何知道 Snapshot Listener 结束了 |火炉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50107921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com