这会返回一个ArrayList,其中包含我在Firestore中存储的图像Uris。我怎样才能解开数组列表并逐个解压缩?下面是logcat的示例输出。
{0 = https://firebasestorage.googleapis.com/v0/b/app ........,1 = https://firebasestorage.googleapis.com/v0/b/app .........,2 = https://firebasestorage.googleapis.com/v0/b/app}
firebaseFirestore.collection("Ads").whereEqualTo("user_id",user_id).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Map<String, Object> map = document.getData();
for (Map.Entry<String, Object> entry : map.entrySet()) {
ArrayList<String> imgUri = (ArrayList<String>) entry.getValue();
for (String uri : imgUri) {
Log.d(TAG, uri);
}
}
}
}
}
答案 0 :(得分:1)
要解决此问题,请使用以下代码行:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
rootRef.collection("Ads").whereEqualTo("user_id", user_id).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Map<String, Object> map = (Map<String, Object>) document.get("imgUri");
for (Map.Entry<String, Object> entry : map.entrySet()) {
Log.d(TAG, entry.getValue().toString());
}
}
}
}
});
输出将是:
https://firebasestorage.googleapis.com/v0/b/app.........,
https://firebasestorage.googleapis.com/v0/b/app.........,
https://firebasestorage.googleapis.com/v0/b/app.........,