Вы не хотите предотвращать ожидание, пока запрос не будет выполнен, вы должны принять использование обещаний здесь.
Во-первых, если вы этого не сделали, убедитесь, что вы импортировали пространство имен firestore
вуслуга:
import { firestore } from 'firebase';
Теперь для вашего обслуживания:
Мне пришлось немного изменить ваш метод makeDoc
, так как объект fields
не былсозданный действительным способом (например, повторное использование типа number
):
public makeDoc(titleParam: string, scoreParam: number): Promise<firestore.DocumentReference> {
const fields = {
title: titleParam,
score: scoreParam
};
return this.db.collection('saved').add(fields);
}
Теперь это возвращает Promise<DocumentReference>
, который, после разрешения, ссылка будет указывать на созданный документ.
Теперь вызов к нему в onCreate выглядит следующим образом:
onCreate() {
this.createService.makeDoc('myTitle', 123)
.then((ref) => { console.log(ref.id); })
.catch((err) => { console.log(err); });
}
И это будет регистрировать идентификатор, как только он станет доступен.