Android Firestore查询求助:获取含指定值的文档ID
解决Firestore获取指定值对应文档ID的问题
嘿,我看到你刚上手Firestore就遇到了查询文档ID的小问题,别担心,咱们马上搞定它~
你的需求很明确:找到包含指定值(蓝色框标注)的文档,获取它的ID(红色框标注),但你写的查询语句有个小错误:
collection("mychannel").whereEqualTo("74wRU4xHrcV9oWAXEkKeRNp41c53")
Firestore的whereEqualTo方法需要两个参数:第一个是你要匹配的字段名,第二个是对应的字段值。你现在只传了一个值,Firestore不知道该匹配哪个字段,自然查不到结果啦。
正确的查询写法
假设你要匹配的字段名是userId(请替换成你实际文档里存储蓝色框值的字段名),正确的代码应该是这样的:
collection("mychannel") .whereEqualTo("userId", "74wRU4xHrcV9oWAXEkKeRNp41c53") // 字段名 + 目标值 .get() .addOnSuccessListener { querySnapshot -> // 遍历查询到的所有文档 for (document in querySnapshot.documents) { val targetDocId = document.id // 获取红色框标注的文档ID println("找到的文档ID: $targetDocId") } } .addOnFailureListener { exception -> println("查询失败: ${exception.message}") }
关键提示
一定要把代码里的"userId"替换成你Firestore文档中实际存储那个蓝色框值的字段名称,不然查询还是会没有结果哦。执行这个查询后,遍历返回的文档快照,document.id就是你需要的目标文档ID啦。
内容的提问来源于stack exchange,提问作者Fathur Radhy
相关产品推荐
相关产品推荐

