【发布时间】:2021-07-25 08:46:45
【问题描述】:
当我上传第一个图像时,它会存储在云存储中,但它不会将图像 url 存储在 Firebase Firestore 数据库中,当我上传第二个图像时,它会再次存储在云存储中,但它会存储在 Firebase Firestore 数据库中第一个图像的 url,然后再次如果我上传第三个图像,它会存储在云存储中,但令人惊讶的是,它会将第二个图像的 url 上传到 firebase firestore 数据库中,依此类推。简而言之,它不存储当前图像的 url,在上传当前图像时,它会上传并显示前一个图像,但是如果我们检查云存储,其中存储了三张图像,但在 firestore 数据库中只有两个 URL图像。我已经尝试过(更新({“images”:urls }))和(更新({“images”:FieldValue.arrayUnion(urls)})),你可以看到我已经评论了另一个,两者都给出了相同的结果/问题。所以,我不知道这是什么原因?请帮助我并提前感谢。下面是上传的代码..
_uploadImages() async {
_images.forEach((image) {
if(image!=null) {
var _ref = _stoarge.ref().child("images/" + basename(image.path));
_ref.putFile(image).whenComplete(() async {
String url = await _ref.getDownloadURL();
print(url);
urls.add(url);
print(url);
});
}
});
print("uploading:"+urls.asMap().toString());
await FirebaseFirestore.instance.collection("users")
.doc(auth.currentUser.uid).update({"images": urls });
// .doc(auth.currentUser.uid).update({"images": FieldValue.arrayUnion(urls) });
}
【问题讨论】:
标签: firebase flutter google-cloud-firestore