【发布时间】:2021-11-12 01:15:11
【问题描述】:
我正在从 FireStore 获取数据到地图中,我在 Firestore 中的数据如下所示:
(Auto-Document ID)
title="title1"
body="body1"
(Auto-Document ID)
title="title2"
body="body2"
当我将它们加载到地图中时,它看起来像这样:
loadNoteCallBack: {rsmw3EkfIjUQxrzRiyy7={body=body2, title=title2}, sTEfYCcPK9lw77xWS8H5={body=body1, title=title1}}
“rsmw3EkfIjUQxrzRiyy7”和“sTEfYCcPK9lw77xWS8H5”是自动生成的文档ID-s
现在我的问题是,我想从中提取标题,但我不知道如何操作。
我试过这个:
List<String> keys = new ArrayList<>();
for (String key : data.keySet()) {
keys.add(key);
}
但我以这种方式取回了文档 ID-s。
标题:[rsmw3EkfIjUQxrzRiyy7, sTEfYCcPK9lw77xWS8H5]
我应该如何获得标题?
更新
我想我做到了。是不是很好解决这个问题?
public static void loadNote() {
db.collection("Datas")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
Map<String, Object> data = new HashMap<>();
List<String> titles = new ArrayList<>();
for (QueryDocumentSnapshot document : task.getResult()) {
titles.add(document.getString("title"));
data.put(document.getId(),document.getData());
}
defaultEntitys.loadNoteCb(data,titles);
} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});
【问题讨论】:
-
rsmw3EkfIjUQxrzRiyy7&sTEfYCcPK9lw77xWS8H5会成为你地图的关键吗? &title,body将是对象的一部分,可以用作value是你想要做的吗? -
是的,我只想得到所有的标题
-
您正确获取了自动生成的密钥。你想要得到的是价值的一部分,而不是关键。
-
@IslamEl-Rougy 我明白了,那我应该如何从值中获取标题?
标签: java google-cloud-firestore