【问题标题】:Querying field in all documents and identifying which document the field is found in?查询所有文档中的字段并识别该字段在哪个文档中?
【发布时间】:2020-05-26 06:30:55
【问题描述】:

我是 Firebase 的 Firestore 新手,正在尝试完成查询并返回结果。

我的数据库结构包括:

[集合]“用户”

[文档]“userID”(唯一哈希)

[字段]“钱包地址”

我正在尝试创建一个查询,该查询将搜索所有 userID 文档的 walletAddress 字段,如果找到 walletAddress,则返回找到它的 userID。

我很难弄清楚如何为集合中的所有文档创建引用。

使用 Java 工作。

谢谢你的不和所有的帮助。

【问题讨论】:

  • 查询 Firestore 在这里有很好的记录:firebase.google.com/docs/firestore/query-data/queries。你需要的似乎是WalletAddress 的一个条件,所以类似于Firestore.getInstance().collection("users").whereEqualTo("WalletAddress", "ValueYouAreLookingFor")。如果您在完成这项工作时遇到困难,如果您编辑问题以显示您尝试过的内容,可能会更容易提供帮助。
  • 谢谢弗兰克。只是想解决这个问题。上面的代码会在“users”集合中的所有文档中搜索“walletAddress”字段吗?还是会在“用户”集合中搜索名为“walletAddress”的文档?我不必指定要搜索的文档吗?
  • 它会在 users 集合中的所有文档中搜索字段 WalletAddress 等于 "ValueYouAreLookingFor" 的文档。我强烈建议您阅读我链接的文档,因为这应该比我在这里的几个 cmets 能更好地解释它。
  • 再次感谢,我正在再次阅读它。 :)

标签: java firebase google-cloud-firestore


【解决方案1】:
CollectionReference walletAddrs =  fStore.collection("users");

Query queryAddr1 = walletAddrs.whereEqualTo("walletAddress1", queryAddr);

queryAddr1.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if(task.isSuccessful()){
                for(QueryDocumentSnapshot document:task.getResult()){

                    userID = document.getId();

                }
            }
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2017-02-19
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2021-06-01
    相关资源
    最近更新 更多