我有一些测试文件,试图使用admin sdk获取Firestore文档。我不断收到错误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();
答案 0 :(得分:1)
我认为您需要对想要的文档执行一些操作。尝试.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 => {
答案 1 :(得分:0)
您在这里有两件事错了。
您不能在Cloud Functions中运行任意代码或脚本。您需要声明一个函数,当项目中发生某些事情时将触发该函数。到目前为止,您尚未声明任何触发器。您是否要写HTTP trigger? Firestore trigger?阅读文档并使用firebase-functions
模块声明一个。
第二,您的代码实际上并未获取任何文档。您现在所拥有的只是一个DocumentReference,它指向一个文档:
admin.firestore().collection('messages').doc('1DwcY72Jt4Wj9QuZ8TyR')
至少,您需要对此调用get()才能实际获取文档,然后处理其返回的承诺。