我将下图所示的数据结构存储在 Cloud Firestore 中。我想保存 dungeon_group
这是存储在 Firestore 中的字符串数组。
我很难获取数据并将其存储为数组。我只能得到一个奇怪的字符串,但是有什么方法可以存储为字符串数组吗?下面是我使用的代码。
我能够在 Swift 中实现这一点,但不确定如何在 Android 中实现同样的目标。
迅速:
Firestore.firestore().collection("dungeon").document("room_en").getDocument {
(document, error) in
if let document = document {
let group_array = document["dungeon_group"] as? Array ?? [""]
print(group_array)
}
}
Java 安卓:
FirebaseFirestore.getInstance().collection("dungeon")
.document("room_en").get()
.addOnCompleteListener(new
OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
DocumentSnapshot document = task.getResult();
String group_string= document.getData().toString();
String[] group_array = ????
Log.d("myTag", group_string);
}
});
控制台输出如下:
{dungeon_group=[3P, 紧急, 任务挑战, 降临, 协作, 每日, 技术, 普通]}
原文由 Simon Ho 发布,翻译遵循 CC BY-SA 4.0 许可协议
当您调用 DocumentSnapshot.getData() 时,它会返回一个地图。您只是在该地图上调用 toString(),这将为您提供文档中所有数据的转储,这并不是特别有用。您需要按名称访问
dungeon_group
字段: