簡體   English   中英

Firestore查詢結果不起作用

[英]Firestore Query result not working

我有這樣的Firestore文檔設置:

public class Item {
  String name;
  Map<String, Boolean> testMap;

}

我擁有所有的吸氣劑和空的構造函數,添加,更新了Firestore文檔的工作。

當我將價值放入地圖時,它看起來像這樣:

testMap: { 
testValue: true }

但是當我嘗試使用下面的代碼查詢該值時, for()循環不起作用。 我收到I/Task: Successful日志,但是I/TestLog: TestLog沒有顯示,並且下面的代碼也不起作用

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();

                    }

                }
            });

我真的很困惑,我幾乎遵循了文檔 ,但是我無法獲得結果

好的,我可以使用它,結果證明這是我在查詢中的愚蠢錯誤。

我更新了testMap值與我在此處提供的值不同,確切地說是一封電子郵件,因為我認為這完全沒有任何區別。 事實證明確實如此。 當我查詢結果時,我使用了mColRef.whereEqualTo("testMap.email@email.com", true)就是這樣. 電子郵件地址中的(點)。 該點不能用作查詢中的值,因為它用於將嵌套對象與數據庫中的所有其他對象分開,因此該查詢可能在email映射中查找了名為com對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM