繁体   English   中英

使用 firestore db 的查询和算法?

[英]Query and algorithms using firestore db?

我目前正在尝试弄清楚如何匹配和/或比较 firestore 数据库中的数据。 假设我有 10 个苹果。 我的苹果是红色的。 我希望能够将我的颜色与其他 10 个苹果进行比较,然后仅与红色的苹果相匹配(有 2 个苹果是红色的)。 在使用 firestore 数据库作为所有苹果的主数据库时如何实现这一点?

Firebase Db 看起来像这样:

在此处输入图像描述

apple1 是红色的,应该与 apple5 匹配。 rest 与 colors 不同。当用户按下搜索按钮时,它应该过滤 firestore Db 并且只匹配足够的响应(在这种情况下 apple5 也是红色的)我怎样才能实现这个? 我是否需要使用第三方库来创建此算法,还是可以在 kotlin 中完成,因为据我了解,某些功能不适用于 firestore Db? 感谢任何反馈!

这是一个非常简单的查询,“获取字段颜色值为红色文档”。 尝试:

db.collection("apples")
        .whereEqualTo("color", "red")
        .get()
        .addOnSuccessListener { documents ->
            for (document in documents) {
                Log.d(TAG, "${document.id} => ${document.data}")
            }
        }
        .addOnFailureListener { exception ->
            Log.w(TAG, "Error getting documents: ", exception)
        }

查看文档以获取 Firestore 支持的更多查询示例。

基本上,您可以使用Queries来匹配特定条件并获取所有文档。

对于您的情况,您可以使用以下代码片段根据color获取数据

try {
AsyncSnapshot<QuerySnapshot> data = firestore.collection("hubs")
                                    .where("color", isEqualTo: "red")
                                    .get();
final docs = data.data!.docs; 

docs.forEach((e)=>{
    //each firestore document
});
}

此处查找官方文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM