类型错误:admin.firestore.collection不是函数



我需要帮助,我总是在firestore云函数admin.firestore.collection上收到错误消息。我做错了什么?我忘记了什么,或者我需要改变什么。

这是代码

'use strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.sendNotification = functions.firestore.document('users/{userID}/notifications/{notificationID}').onWrite((change, context) => {
const to_user_id = context.params.userID;
const notification_id = context.params.notificationID;
console.log('We have notification from: ' + to_user_id + ' The notification id is: ' + notification_id);
return admin.firestore().collection('users').doc(to_user_id).collection('notifications').doc(notification_id).get().then(queryResult => {
const from_user_id = queryResult.data().commentUID;
const from_user_data = admin.firestore.collection('users').doc(from_user_id).get();
const to_user_data = admin.firestore.collection('users').doc(user_id).get();
return Promise.all([from_user_data, to_user_data]).then(result => {
const from_name = result[0].data().name;
const to_name = result[1].data().name;
return console.log("FROM: " + from_name + " TO: " + to_name);
});
});
});

package.json

{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "6.3.0",
"firebase-functions": "^2.1.0"
},
"devDependencies": {
"eslint": "^5.9.0",
"eslint-plugin-promise": "^4.0.1"
},
"private": true
}

我得到的错误

TypeError: admin.firestore.collection is not a function
at admin.firestore.collection.doc.collection.doc.get.then.queryResult (/user_code/index.js:17:48)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)

它是admin.firestore(),而不是admin.firestore。这是一个函数调用,而不是属性。在您的代码中,您正确地执行了一次,然后错误地执行了两次。

我的函数也遇到了同样的问题。

exports.getScreams = functions.https.onRequest((req, res) => {
admin.firestore.collection('screams').get()
.then((data) => {
let screams = [];
data.forEach((doc) => {
screams.push(doc.data())
});
return res.json(screams);
})
.catch((err) => console.error(err)) })

然后我用

admin.firestore((而不是admin.firestore

最新更新