使用Flutter查询Firestore数据库时,我收到此错误。
E / flutter(17558):[错误:flutter / lib / ui / ui_dart_state.cc(157)]未处理的异常:PlatformException(执行事务错误,在事务中读取的每个文档也必须写入。,null)< / p>
Future getFavorites(String uid) {
DocumentReference favoritesReference =
Firestore.instance.collection('users').document(uid);
List favoritesList = [];
return Firestore.instance.runTransaction((Transaction tx) async {
DocumentSnapshot postSnapshot = await tx.get(favoritesReference);
var length;
if (postSnapshot.exists) {
length = postSnapshot.data['favorites'].length;
}
print(length);
});
}
答案 0 :(得分:1)
似乎您没有写文档。在交易中读取的每个文档都应写入。然后,您可以添加与每个文档读取相对应的set()
,update()
或delete()
。
如果您不需要写回favoritesReference
,请在交易之前而不是交易内部进行读取。