我试图通过Cloud Firestore实时更新访问标记为vote_count
的字段。
下面是我的数据结构:
以前,在Firebase Realtime Database下,我会。addValueEventListener()并深入到“答案”。然而,有了云Firestore,它就有点复杂了。
mStoreSelectedPollRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(final DocumentSnapshot documentSnapshot, FirebaseFirestoreException e) {
if (e != null){
Log.v("LISTEN", "LISTEN_FAILED");
return;
}
if (documentSnapshot != null){
Log.v("Current Data", String.valueOf(documentSnapshot.getData()));
mStoreSelectedPollRef.collection(ANSWERS_LABEL).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
updatePollResultAnswersDynamically(task.getResult().size(), documentSnapshot);
}
});
} else {
Log.v("Current Data", "Current Data Nulll");
}
}
});
根据这个片段:
mStoreSelectedPollRef.collection(ANSWERS_LABEL).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
updatePollResultAnswersDynamically(task.getResult().size(), documentSnapshot);
}
});
您可以通过以下方式获得答案文档的总数:
task.getResult().size()
既然你已经有了这个代码,我真的不知道你在问什么。如果您想知道是否有一种方法可以在不获得文档的情况下获得计数,请查看这里:https://stackoverflow.com/a/46555026
for (DocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());
}
带有我的适配器的代码段是:
通过这篇博客,我可以看到我的应用程序最好使用Firebase Firestore的Firebase云功能,而不是使用客户端SDK直接访问Firestore。 我可以使用实现Firestore读取操作,使用或&使用方法实现写入操作。所有这些一次性操作都很好。 是否可以实现来获取实时更新?如果是,怎么做?
遵循firestore的官方文件: 我想使用动态键而不是颜色。 这当然是不可能的,并且会引发错误。 我一直在尝试这样做: 它实际上是用正确的键进行更新,但不幸的是,它正在覆盖其他键(它们正在被删除)。
我正在为具有许多嵌套行的json数据库寻找将Firebase实时数据库数据迁移到云Firestore的最佳方法。示例: 我没有找到任何可以帮助我的东西。我需要迁移的是Cloud FireStore的新离线功能。我正在使用Ionic3(角度5)
(注意:如果我在这里使用关系数据库术语,很抱歉。) 假设我有十个客户端连接到一个数据库。该数据库的持续吞吐量约为每秒1k次更新。显然,对于最终用户来说,每秒向web浏览器发送1k个更新(比如每秒1MB的数据更改)并不是一个好的体验。Firebase是否可以控制客户端在开始限制数据之前可以“接受”的数据量?我理解它可能会批量请求,但我的观点是,谷歌接受数据/更新的速度比浏览器更快(可能是通过弱互联网
每个食谱文档包含三个内容。一个名为的字段,其中存储菜谱的名称;一个名为的字段,其中存储创建者uid的,以及一个名为的子集合,其中包含带有一些随机字段的文档。 问题是,使用这些规则只能创建菜谱文档。子集合及其文档不会创建,因为db表示 FirebaseError:[code=permission-denied]:缺少权限或权限不足。FirebaseError:缺少权限或权限不足。