在Android中使用Firestore,是否可以读取下面嵌套对象"items"中的键?
{
"email":"someemail@someaddress.com",
"items": {
"8G9RiMgx9SmDLYrQbNrN": true,
"K19RiMr7SmDLYrQbNrN": true
}
}
如果你有一个 FirestoreDocumentSnapshot
表示该 JSON 结构,你可以通过以下方式获取项目的键:
DocumentSnapshot document = ...
Map<String, Object> items = (Map<String, Object>) document.get("items");
Set<String> keys = items.keySet();
是的,你可以。试试这段代码,它:
JSONObject data = new JSONObject("youJson");
data = data.optJSONObject("items");
Iterator<String> iter = data.keys();
//Iterate all the keys
while (iter.hasNext()) {
String key = iter.next();
Boolean value = json.optBoolean(key); //Get the actual value
}
您可以通过迭代如下map
来实现此目的:
yourRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
Map<String, Object> items = (Map<String, Object>) document.get("items");
for (Map.Entry<String, Object> entry : items.entrySet()) {
Log.d(TAG, entry.getKey() + "/" + entry.getValue());
}
}
}
}
});