颤动错误:文档引用必须具有偶数个段

时间:2019-02-14 08:03:43

标签: dart flutter google-cloud-firestore fatal-error

我有一个名为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

我怎么了?我整天都在受苦...

Database ScreenShot

2 个答案:

答案 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;