[英]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.