Sal*_*Eng 1 java android firebase google-cloud-firestore
这是 firebase Firestore 中保存的部分数据:
在 Java 中如何fName从 ()获取 ( newFriend0)?
这是代码的一部分。它给出了整个地图。我只想要一个特定的字段,例如 (“jem” for (fName))
Map<String, Object> map = document.getData();
for (Map.Entry<String, Object> entry : map.entrySet()){
if (entry.getKey().equals("Friends")){
f=document.getString("FName");////not worked
Log.d("TAG", entry.getValue().toString());
}
}
Run Code Online (Sandbox Code Playgroud)
编辑: 2201 年 7 月 16 日
事实上,有一种更简单的获取数据的方法:
看到你的代码是Java的,请看下面的解决方案:
FirebaseFirestore.getInstance().collection("coll").document("9999").get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
Map<String, Object> friendsMap = document.getData();
for (Map.Entry<String, Object> entry : friendsMap.entrySet()) {
if (entry.getKey().equals("Friends")) {
Map<String, Object> newFriend0Map = (Map<String, Object>) entry.getValue();
for (Map.Entry<String, Object> e : newFriend0Map.entrySet()) {
if (e.getKey().equals("newFriend0")) {
Map<String, Object> fNameMap = (Map<String, Object>) e.getValue();
for (Map.Entry<String, Object> dataEntry : fNameMap.entrySet()) {
if (dataEntry.getKey().equals("fName")) {
Log.d("TAG", dataEntry.getValue().toString());
}
}
}
}
}
}
} else {
Log.d("TAG", "No such document");
}
} else {
Log.d("TAG", "get failed with ", task.getException());
}
}
});
Run Code Online (Sandbox Code Playgroud)
logcat 中的结果将是:
jem
Run Code Online (Sandbox Code Playgroud)
在屏幕截图中没有看到您的收藏的名称,因此我简单地命名了它coll,但您绝对应该将其更改为正确的名称。
| 归档时间: |
|
| 查看次数: |
3000 次 |
| 最近记录: |