node.js - TypeError : admin. firestore.collection不是函数

标签 node.js firebase google-cloud-firestore google-cloud-functions

我需要帮助,但我总是在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。这是一个函数调用,而不是属性。在您的代码中,您一次执行正确,然后两次执行不正确。

关于node.js - TypeError : admin. firestore.collection不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53651975/

相关文章:

firebase - 如何从fire store中获取多行并显示在数据表中--FLUTTER

node.js - Mongodb 如何查询特定文档的数组子集

android - RESTful API 或 Socket.IO

javascript - 必须使用 import 加载 ES Module .eslintrc.js

Android Firestore通过文档id获取字段值

java - 更改任务的 OnCompleteListener 的 onComplete 方法中的 UI

node.js - 从 Meteor 服务器端路由使用 node-rio

node.js - 在tomcat中集成easyrtc服务器

Firebase Admin SDK 应用操作代码进行电子邮件验证

android - Firebase 预定通知