我有一个名为memssages
的集合,并且必须查找字段begin
等于false的文档。代码如下。
Future<String> getRoomID() async {
QuerySnapshot snapshot = await sl.get<FirebaseAPI>().getFirestore()
.collection('messages')
.where('begin',isEqualTo: false).getDocuments();
if(snapshot.documents.length==0){
return '';
} else {
Random random = Random();
DocumentSnapshot document = snapshot.documents[random.nextInt(snapshot.documents.length)];
return document.documentID;
}
}
但是它会发生致命错误,例如我的帖子标题。
java.lang.IllegalArgumentException:无效的文档引用。 文档引用必须具有偶数个段,但是消息 有1
我怎么了?我整天都在受苦...
答案 0 :(得分:1)
Collection Reference的段数为奇数, 文档参考的段数为偶数。
Firestore数据结构为: 集合-文档-集合-文档-集合-文档
对于您的情况,您尝试从python manage.py collectstatic
调用getDocument()
,但是在调用collectionReference(odd segment)
之后的代码属于getDocument()
的{{1}}。因此,错误告诉您您的参考需要偶数段
答案 1 :(得分:0)
以防万一,这可以帮助您
在获取之前先进入实例
final ref = db.collection("users").document(uid).get();
print (ref.path);
final snapShot = await ref;