Не могу получить документ Firestore с помощью администратора SDK - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть несколько тестовых файлов, которые пытаются получить документ Firestore с помощью администратора SDK.Я получаю сообщение об ошибке TypeError: admin.firestore(...).collection(...).doc(...).then is not a function

Я обслуживаю / тестирую локально.Что я делаю не так?

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp({
  credential: admin.credential.cert(functions.config().cert),
  databaseURL: functions.config().databaseURL
});

const getMessage = () => {
  return admin.firestore().collection('messages').doc('1DwcY72Jt4Wj9QuZ8TyR').then(res => console.log(res)).catch(err => {
    return err
  })
}

getMessage();

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Здесь у вас две неправильные вещи.

Вы не можете запустить произвольный код или сценарии в облачных функциях.Вам нужно объявить функцию, которая будет срабатывать, когда что-то случится в вашем проекте.В настоящее время вы не объявили никаких триггеров.Вы пытаетесь написать HTTP триггер ?A Триггер Firestore ?Прочтите документацию и используйте модуль firebase-functions, чтобы объявить его.

Во-вторых, ваш код фактически не извлекает какие-либо документы.Все, что у вас есть сейчас, это DocumentReference, который указывает на документ:

admin.firestore().collection('messages').doc('1DwcY72Jt4Wj9QuZ8TyR')

По крайней мере, вам нужно вызвать get () для этого, чтобы фактически извлечь документ, а затем обработать обещаниеоно возвращается.

0 голосов
/ 29 декабря 2018

Я думаю, вам нужно выполнить какое-то действие с документом, который вы хотите.Попробуйте .get()

https://firebase.google.com/docs/firestore/query-data/get-data#get_a_document

Так что для вас:

return admin
  .firestore()
  .collection('messages')
  .doc('1DwcY72Jt4Wj9QuZ8TyR')
  .get()
  .then(res => console.log(res)).catch(err => {
...