【发布时间】:2020-03-13 15:16:34
【问题描述】:
for (Uri mUri : mSelected)
{
imagesRef = storageRef.child(postid + mUri.getLastPathSegment());
imagesRef.putFile(mUri).addOnSuccessListener(task4 ->
db.collection("posts").document(postid).update("photo_id", FieldValue.arrayUnion(imagesRef.getDownloadUrl())));
}
所以,现在我正在使用 firestore 和 firebase 存储。我将(多个)图像上传到存储中,当它上传时,我得到下载 url 并想将它添加到我的 firestore 中。所以,问题是,只有最后一个图像被添加到 firestore,所有图像都被添加到存储中,但只有最后一个 imgUrl 被添加到 firestore。由于 firebase 使用异步任务,我怀疑这是因为更新任务跟不上循环。非常感谢任何帮助!!!
【问题讨论】:
-
只是检查一下,是不是同时上传2张图片会出现问题?
-
每次迭代时
postid的值是多少? -
@nada 是的,当我只发布 1 张图片时,图片会成功上传,但是当我上传 2 张或更多时,只有最后一张图片会上传到 Firestore
-
@AlexMamo postid 每次创建都不一样,此代码在我创建新帖子时使用,因此当用户单击“发布”时,我想将图片上传到存储并获取他们的 url,不幸的是我只能将最后一个 url 上传到 firestore
标签: android firebase loops asynchronous android-asynctask