集合在Firebase Console上具有默认权限。
我使用电子邮件和密码正确登录我的用户。user = await _auth.signInWithEmailAndPassword( email: "email@gmail.com", password: "password");
然后,在将图像成功上传到FireStorage后,我尝试运行一个事务来更新文档。
var fileName = _textController.text.toLowerCase();
StorageUploadTask putFile =
storage.ref().child("region/$fileName").putFile(_regionImage);
UploadTaskSnapshot uploadSnapshot = await putFile.future;
var regionData = new Map();
regionData["label"] = _textController.text;
var pictureData = new Map();
pictureData["url"] = uploadSnapshot.downloadUrl.toString();
pictureData["storage"] = "gs://app-db.appspot.com/region/$fileName";
regionData["picture"] = pictureData;
DocumentReference currentRegion =
Firestore.instance.collection("region").document(fileName);
Firestore.instance.runTransaction((transaction) async {
DocumentSnapshot freshSnap = await transaction.get(currentRegion);
print(freshSnap.exists);
//await transaction.set(freshSnap.reference, regionData);
await transaction.set(currentRegion, regionData);
print("instance created");
});
我在尝试运行事务时收到此错误。
如果我尝试设置为freshSnap.reference
或直接设置为currentRegion
,情况是一样的。https://gist.github.com/matejthetree/f2a57c929d01919bd46da8ca6d5b6fb1
请注意,在第15行,事务开始出现错误,但在此之前,我没有获得FireStorage的授权令牌错误,尽管我成功地将图像上传和下载到存储。
我应该如何在FireStore中创建文档
3条答案
按热度按时间v09wglhw1#
看起来问题出在我绘制Map的方法上。
此代码现在有效
chhkpiq42#
Firestore
替换为FirebaseFirestore
,大量API也已更新。ddarikpa3#
使用
null safety
更新2023有两种方法:
1.自定义文档ID
使用
set()
方法2. Firebase生成的文档ID
使用
add()
方法