Ошибка во флаттере: ссылки на документы должны иметь четное количество сегментов - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть коллекция с именем 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

Что со мной не так?Я страдал целый день ...

База данных ScreenShot

1 Ответ

0 голосов
/ 14 февраля 2019

Ссылка на коллекцию будет иметь нечетный номер сегмента, Ссылка на документ будет иметь четный номер сегмента.

Структура данных Firestore: Коллекция - документ - Коллекция - документ - Коллекция - документ

ДляВ вашем случае вы пытаетесь позвонить getDocument() с collectionReference(odd segment), однако ваш код после getDocument() - это код, принадлежащий getDocument с documentReference(even segment).Значит, из-за ошибки вам сказали, что для вашей ссылки нужен четный номер сегмента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...