Я получил сообщение об ошибке при уведомлении с использованием firebase в журнале функций. Как это исправить? - PullRequest
0 голосов
/ 31 марта 2019

Я создаю мобильное приложение, используя флаттер, и я хочу, чтобы оно поддерживало автоматические push-уведомления, затем я использовал облачную передачу сообщений на базе Firebase.Функция, которую я написал:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
//admin.initializeApp();
var msgData;
exports.offerTrigger = functions.firestore.document('requests/{requestId}'
).onCreate((snapshot,context) => {
    msgData = snapshot.data();
    admin.firestore().Collection('pushtokens').get().then((snapshots) => {
        var tokens = [];
        if(snapshots.empty){
            console.log('No devices');
        }
        else {
            for(var token of snapshots.docs){
                tokens.push(token.data().deviceId);
            }
            var payload = {
                "notification" : {
                    "title" : "From" + msgData.Name,
                    "body"  : "Request " + msgData.requestDetial,
                    "sound" : "default"
                },
                "data" : {
                    "SenderName" : msgData.Name,
                    "message"    : msgData.requestDetial
                }
            }
            admin.messaging().sendToDevice(tokens,payload).then((respone) => {
                console.log("pushed them all");
            }).catch((err) => {
                console.log(err);
            });
        }
    })
})

после того, как я развернул свою функцию, и когда я добавил некоторые документы, я получил ошибку в функциях firebase, регистрирующую ошибку:

TypeError:admin.firestore (...). Коллекция не является функцией

в файле export.offerTrigger.functions.firestore.document.onCreate (/user_code/index.js:9:23)

в cloudFunctionNewSignature (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:114:23)

в cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:144: 20)

в /var/tmp/worker/worker.js:827:24

в process._tickDomainCallback (внутренняя / process / next_tick.js: 135: 7)

Как я могу исправить эту ошибку?

1 Ответ

0 голосов
/ 31 марта 2019

Изменить это:

    admin.firestore().Collection('pushtokens').get().then((snapshots) => {

в это:

   admin.firestore().collection('pushtokens').get().then((snapshots) => {

из документов:

collection(collectionPath)

Получает экземпляр CollectionReference, который ссылается на коллекцию по указанному пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...