Я использую 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'
Мне кажется, что документация противоречит ошибкам, которые выдает редактор.Кто-нибудь знает, что происходит?
Спасибо за чтение,
-Джоэль