小编Ple*_*ugs的帖子

使用whereArrayContains搜索的效率

我对使用此代码在集合中搜索文档的效率感到好奇。随着集合中文档数量的增加和数组中项目的数量的增加,这种搜索会变得非常低效吗?是否有更好的方法可以执行此操作,或者可以对数据库进行模式更改以更好地优化此方法?在哪里可以找到Firestore文档的这些功能的时间复杂性?

Query query = db.collection("groups").whereArrayContains("members", userid);
Run Code Online (Sandbox Code Playgroud)


替代解决方案

我最初想尝试将组ID存储在该用户下,以便仅抓取该当前用户的组,但是遇到了问题,而且从未找到使用多个ID进行查询来设置FireStoreRecyclerOptions的解决方案。

例:

for(String groupid : list) {
    Query query = db.collection("test-groups").document(groupid);

    FirestoreRecyclerOptions<GroupResponse> response = new FirestoreRecyclerOptions.Builder<GroupResponse>()
            .setQuery(query, GroupResponse.class)
            .build();
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以向其中添加多个查询FirestoreRecyclerOptions

java android firebase firebaseui google-cloud-firestore

5
推荐指数
1
解决办法
595
查看次数

C问题包括警卫

我有一个包含防护设置的头文件.我的项目中有多个C文件,需要这个头文件进行编译.当我去编译但是我得到一个错误,说该函数已经包含在另一个文件中.包括警卫不应该阻止这种情况发生吗?从理论上讲,我相信我应该能够多次导入这个文件而没有这个问题.

#ifndef __BST_INCLUDED
#define __BST_INCLUDED__

//bunch of code here

#endif
Run Code Online (Sandbox Code Playgroud)

错误:

bst.h:22:13: error: conflicting types for ‘pruneBSTNode’
 extern void pruneBSTNode(bst *tree,bstNode *node);
             ^
In file included from vbst.h:5:0,
                 from bstrees.c:7:
Run Code Online (Sandbox Code Playgroud)

c header include-guards include

0
推荐指数
1
解决办法
258
查看次数