首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >固定查询结果不起作用

固定查询结果不起作用
EN

Stack Overflow用户
提问于 2018-04-22 00:43:04
回答 1查看 920关注 0票数 0

我有一个这样的Firestore文档设置:

代码语言:javascript
复制
public class Item {
  String name;
  Map<String, Boolean> testMap;

}

我有所有的getter和空的consturctor,添加,更新修复文档工作。

当我把值放在地图上时,它看起来如下:

代码语言:javascript
复制
testMap: { 
testValue: true }

但是,当我试图使用下面的代码查询该值时,for()循环无法工作。我得到了I/Task: Successful日志,但是I/TestLog: TestLog没有显示,下面的代码也不起作用

代码语言:javascript
复制
mColRef.whereEqualTo("testMap.testValue", true)
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {

                    if(task.isSuccessful()) {
                        Log.i("Task", "Successful");


                        for (QueryDocumentSnapshot document : task.getResult()) {

                            Log.i("TestLog", "TestLog");

                            Log.i("ItemName:", document.getString("name");

                        }

                    } else {

                        Toast.makeText(FirebaseTest.this, task.getException().getMessage(), Toast.LENGTH_SHORT).show();

                    }

                }
            });

我真的很困惑,我几乎跟随文档,但我无法得到结果

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-22 11:24:21

好的,我把它做好了,结果是我在质疑中犯了一个愚蠢的错误。

我更新的testMap与我在这里提供的不同的价值,确切地说,这是一封电子邮件,因为我认为它完全没有任何区别。事实证明确实如此。当我询问结果时,我使用了mColRef.whereEqualTo("testMap.email@email.com", true),电子邮件地址中有.(点)。在查询中,点不能用作值,因为它用于将嵌套对象与数据库中的所有其他对象分离开来,因此查询可能在email映射中查找名为email的对象

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49961478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档