javascript - 更新后的 Firebase-Functions 错误。我能做些什么?

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

我更新了我的 firebase-functions,现在我在 Firebase 控制台中收到了这个错误。代码仍然是相同的,但我现在收到一个错误:

/srv/node_modules/@google-cloud/firestore/build/src/collection-group.js:54
    async *getPartitions(desiredPartitionCount) {
          ^

SyntaxError: Unexpected token *
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:617:28)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/srv/node_modules/@google-cloud/firestore/build/src/index.js:39:28)
这是我的云函数 TypeScript 源:
import * as functions from 'firebase-functions';
import admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

/********************************************************************/

exports.newChatMessage = functions.firestore
  .document('/games/{gameId}/chat/{chatId}')
  .onCreate((snap, context) => {

    const createData = snap.data();
    if(!createData) {
        return false;
    }

    const chatMessage = createData.message;
    if(!chatMessage) {
        return false;
    }

    console.log('New Chat message in game: ', context.params.gameId);

    const payload = {
        notification: {
            title: 'New chat message',
            body: chatMessage,
            icon: 'ic_notification'
        }
    }

    return admin.firestore().collection(`/games/${context.params.gameId}/members`).where( 'notificationChat', '==', true ).get().then( members => {
        members.forEach( member => {
            if(member.id !== createData.user) {
                return admin.firestore().doc(`/users/${member.id}`).get().then( memberdata => {
                    if( memberdata.get('firebaseToken') === '' ) {
                        return memberdata.data();
                    } else {
                        return admin.messaging().sendToDevice(memberdata.get('firebaseToken'), payload).catch( error => { console.log(error) });
                    }
                }).catch( error => { console.log(error) });
            } else {
                return false;
            }
        })
    }).catch( error => { console.log(error) });

});
这是什么?在我的函数中没有任何方法名为 *getPartitions .

最佳答案

将 firebase-admin 和 firebase-functions 降级到 version: "firebase-admin": "^8.10.0", "firebase-functions": "^3.6.1"并且它会工作。
感谢 Marcel Hoekstra用于在评论中发布此内容。

关于javascript - 更新后的 Firebase-Functions 错误。我能做些什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64575650/

相关文章:

javascript - Socket IO如何向一个特定的人发送消息

reactjs - 如何将 firebase 的 firestore/admin sdk 与 next.js 一起使用

javascript - 获取函数外部变量的值

javascript - 在 Angular/ ionic 应用程序中捕获任意位置的点击/按下按钮/输入焦点

javascript - 清除所有具有 id 的文本框包含特定字符串?

node.js - 如何使用 Angular 2 和 Node.js 开发实时文件上传?

javascript - Firestore 上的条件 where 查询

javascript - 如何使用jquery的ajax方法从php文件返回整数值?

javascript - 删除jquery中ul的第一个li

node.js - 在 Google Kubernetes Engine 中使用环境变量(安全、简单且良好的做法)?