Android - 在嵌套对象 Firestore 中获取密钥



在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());
}
}
}
}
});

最新更新