【发布时间】:2020-08-20 04:07:41
【问题描述】:
我正在尝试通过 firebase 存储将图像上传到 firebase,然后在 firestore 中创建一个文档,其中包含所述上传图像的 url。为此,我使用此功能
void uploadImageAndCreatePage(List<File> imageFile) async {
var storage = FirebaseStorage.instance;
for(int j = 0; j<imageFile.length; j++) {
StorageReference ref = storage.ref().child("photo"+Random().nextInt(3413555).toString()+j.toString());
StorageUploadTask uploadTask = ref.putFile(imageFile[j]);
var url = "";
var dowurl = await (await uploadTask.onComplete).ref.getDownloadURL();
url = dowurl.toString();
downUrl.add(url);
print("url is:" +downUrl.toString());
}
for(int i = 0; i<imageFile.length;i++){
if(i == 0){
map['ImgUrl'] = downUrl[0];
}
map['Img$i'] = downUrl[i+1 < downUrl.length?i+1:i];
}
var doc = await _reference.collection('Products').document("${titleController.text}").get();
doc.reference.setData(map);
doc.reference.collection('Reviews').document("DummyRev").setData({
"name":"null",
});
print("done");
}
代码工作正常,直到它到达我使用 documentreference.setData 设置数据的部分,它接受一个地图值。我将此地图定义为 Map<String,String> map = new Map() ,但它仍然说它不是 _InternalLinkedHashMap 的子类型。我在哪里出错了?我也尝试使用Map<dynamic,dynamic> 和Map<String,dynamic,但无济于事。
【问题讨论】:
标签: android firebase flutter dart google-cloud-firestore