我已经花了很多时间搜索如何在内部获取数组。我想访问数组的每个元素并将其存储在字符串中,例如String array = ??? (我想获得价值)。
进一步了解我的问题。假设我有一个包含所有id的数组,我想检查是否存在一个id,如果是这样,我想将每个元素存储在一个字符串中(每个元素必须在不同的字符串上),以便以后使用在我的其他活动中。
有没有使用for循环的方法?
String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();
DocumentReference docRef = db.collection("Users").document(userId);
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
String plan_id = document.get("plan_id").toString();
Log.d(TAG, "***Found field: " + plan_id);
} else {
Log.d(TAG, "***No such document");
}
} else {
Log.d(TAG, "***Get failed with ", task.getException());
}
}
});
我得到以下输出
***Found field: [3bTzKOmIS1zEHprJa1u0, 6nDgyEimKOnoPbZRsbmQ]
答案 0 :(得分:0)
如果文档中有一个列表类型字段,则在获取时它将转换为Java中的列表类型对象。您现在正在执行的操作是将该列表转换为字符串,这不是很有帮助。只需将其转换为列表,然后像其他任何列表一样对其进行迭代:
List<Object> plan_id = (List<Object>) document.get("plan_id");
for (Object o : plan_id) {
Log.d(TAG, "List element " + o.toString());
}