【问题标题】:How can I get a list of document with specific value of attribute in firebase? [closed]如何在firebase中获取具有特定属性值的文档列表? [关闭]
【发布时间】:2020-11-03 07:44:50
【问题描述】:

我有一个问题,例如我有一组用户,其属性为 id、hobby、name。它们都是字符串,而 hobby 是一个 id,指的是 hobby collection 中的 hobby id。如何获取具有相同爱好的用户列表。假设我有一个名为 user 的类,它具有属性 id、hobby、name。我也有一个爱好的集合,带有属性 id,爱好的名称。我仍然无法区分 querySnapshot、documentSnapshot、documentReference。

我的收藏看起来像这个用户是 (id,hooby_id,name) 而爱好收藏是 (id,hobby_name)。我的函数查询就像 public list getUserByHobby (String Hobby){...}。返回的用户不是字符串,是用户的对象。

如何限制查询次数?在这种情况下如何按字母排序?谢谢

【问题讨论】:

    标签: android firebase google-cloud-platform google-cloud-firestore


    【解决方案1】:

    你可以这样做:

    db.collection("users")
            .whereEqualTo("hobby", "travelling")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            // Logging the ID of your desired document & the document data itself
                            Log.d(TAG, document.getId() + " => " + document.getData());
                        }
                    } else {
                        Log.d(TAG, "Error getting documents: ", task.getException());
                    }
                }
            });
    

    更多信息请查看官方文档:

    Cloud Firestore Documentation

    (因为这些是基本操作,并且在文档中进行了详尽的介绍。)

    【讨论】:

    • 如果我想要一个列表,我应该返回哪个,我也只是添加了这个爱好有他们自己的收藏。所以现在用户收藏中的爱好是一个爱好的ID。谢谢
    • 查看if(task.isSucessful()) 块内部,您可能会看到for 循环。此循环遍历从您的集合返回的文档。所以,如果你想存储文档列表,你可以将它们存储在本地数组或其他东西中。
    • 另外一个要求,可以先阅读爱好集。将爱好(或只是爱好的 ID)存储在本地数组中。然后使用该数组元素(爱好 id)进行查询以查找具有特定爱好的用户。
    • ahhh 好的,谢谢你的想法,有没有我必须在查询中抛出的异常?谢谢
    • 对此不太确定。如果您遇到任何其他问题,您可以尝试一下并稍后发布。
    猜你喜欢
    • 2023-03-17
    • 2021-01-07
    • 1970-01-01
    • 2011-01-17
    • 2021-09-01
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多