firebase - 在Firestore中按ID提取多个文档

标签 firebase kotlin google-cloud-firestore

我目前正在使用新的Firestore作为后端/数据库对Android应用程序进行概念验证。我需要按其ID提取一堆文件(它们都在同一个集合中)

现在,我遍历id列表,并将它们逐个获取,并将它们存储在列表中,这反过来又会更新应用程序中的RecycleView。这似乎是一项艰巨的工作,并且效果不佳。

从Firestore提取文档列表而不必循环所有id并使它们一个接一个的正确方法是什么?

现在我的代码看起来像这样

   for (id in ids) {
        FirebaseFirestore.getInstance().collection("test_collection").whereEqualTo(FieldPath.documentId(), id)
                .get()
                .addOnCompleteListener {
                    if (it.isSuccessful) {
                        val res = it.result.map { it.toObject(Test::class.java) }.firstOrNull()

                        if (res != null) {
                            testList.add(res)
                            notifyDataSetChanged()
                        }

                    } else {
                        Log.w(TAG, "Error getting documents.", it.exception)
                    }
                }
    }

最佳答案

Firestore当前不支持按ID查询。

根据AngularFirebase的说法,这是 future 发展的路线图,但是它不是官方的:

Keep in mind, Firestore is still in beta. Firebase engineers hinted at some really cool features on the roadmap (geo queries, query by array of ids) - I’ll be sure to keep you posted :)

关于firebase - 在Firestore中按ID提取多个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49347277/

相关文章:

使用 Kotlin 和 Mockito 模拟通用接口(interface)

javascript - 如何在 firestore 中存储重复数据?

android - 覆盖 onNewToken 并从 firebase 错误中获取 token

kotlin - 传递观察者并将 lambda 传递给skipUntil 方法

java - 使用 Mockk 模拟静态 java 方法

flutter - 在Flutter Firestore中, 'Future<dynamic>'类型不是 '() => void'类型的子类型

java - 如何从 POJO 类中的 Firestore 集合中检索所有文档?

javascript - Firebase 云函数 Cron 更新

firebase - 将大型 json 文件从 Firebase 存储传输到 Firestore

firebase - 如何使用 firebase 重置默认项目托管?