В QueryDocumentSnapshot, похоже, отсутствуют методы его родительского класса - PullRequest
0 голосов
/ 20 ноября 2018

Я использую Firebase для создания приложения базы данных.Я пытаюсь получить сгенерированный в Firebase идентификатор конкретного документа.Документ возвращается как Обещание, которое возвращает QuerySnapshot.Цикл forEach вытягивает каждый QueryDocumentSnapshot из QuerySnapshot, поэтому я работаю с классом QueryDocumentSnapshot.В документации сказано, что этот класс имеет ту же поверхность API, что и класс DocumentSnapshot.

https://developers.google.com/android/reference/com/google/firebase/firestore/QueryDocumentSnapshot

Поскольку класс DocumentSnapshot имеет метод getId (), я подумал, что буду использовать его.

searchBooks(){

this.booksSearched = true;
this.bookService.getBookList(this.authorName).get().then(bookListSnapshot =>{
  this.bookList = [];
  bookListSnapshot.forEach( snap =>{
    this.bookList.push({
      authorLastName: snap.data().authorLastName,
      title: snap.data().title,
      edition: snap.data().edition,
      id: snap.getId() <-------ISSUE HERE----------- 
    });

    return false;
  });
});

}

Однако я получаю эту ошибку.

property 'getId' does not exist on type 'QueryDocumentSnapshot'

Вот код для bookService

getBookList(authorLastName): firebase.firestore.Query{

  return this.bookListRef.where("authorLastName", "==", authorLastName);
}

Что еще более дико, когда я пытался изменить свой код.Вместо того, чтобы извлекать QueryDocumentSnapshots с помощью цикла forEach, я подумал, что воспользуюсь тем, что bookListSnapShot является QuerySnapshot, и вызову его метод getDocuments ().https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/QuerySnapshot

Это вернет список DocumentSnapshots, возможно, означая, что любой проблемы наследования с методом getId () можно избежать.Однако, когда я попытался, я получил эту ошибку:

var documents = bookListSnapshot.getDocuments();
Property 'getDocuments' does not exist on type 'QuerySnapshot'

Мне кажется, что документация противоречит ошибкам, которые выдает редактор.Кто-нибудь знает, что происходит?

Спасибо за чтение,

-Джоэль

1 Ответ

0 голосов
/ 20 ноября 2018

Вы пишете код на JavaScript, но вы смотрите на документацию по API для Android, используя Java.Вот документы API JavaScript для DocumentSnapshot и QueryDocumentSnapshot .DocumentSnapshot имеет свойство с именем id , которое вы ищете.

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