Как исправить значение для аргумента «documentPath» не является допустимым путем ресурса? - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь вызвать функцию, к которой токен будет доступен во вложенной коллекции, просматривая документы, не указывая его. В дартс я мог бы использовать для этого documentId, могу ли я иметь что-то похожее с javascript? Попробовал следующее, но он возвращает меня:

Значение аргумента "documentPath" не является допустимым путем к ресурсу

Есть ли какие-либо источники информации о том, как это исправить? заранее спасибо за вашу помощь!

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

 var msgData;
 var documentId = admin.firestore.FieldPath.documentId();



exports.chatTrigger = functions.firestore.document(
 'chat/{chatId}/users/{usersId}/messages/{messagesId}')
 .onCreate((snapshot, context) => {
  msgData = snapshot.data();

return 
 admin.firestore().collection('chat').doc(documentId)
 .collection(documentId).doc(documentId)
 .collection('messages').get().then((snapshots) => {
   var tokens = [];
   if (snapshots.empty) {
        console.log('No Devices');
        return false;


     } else {
      for (var token of snapshots.docs) {
          tokens.push(token.data().token);
      }

      var payload = {
         "notification": {
             "title": msgData.name,
             "body": msgData.title,
             "sound": "default"
          },
          "data": {
             "sendername": msgData.name,
             "message": msgData.title,
         }
       }

       return admin.messaging().sendToDevice(tokens, payload).then((response) => {
          console.log('Pushed them all');
       }).catch((err) => {
           console.log(err);
       })
     }

   })
})

Я считаю, что мой documentId на 'admin.firestore (). collection (' chat ') .do c (documentId) .collection (documentId) .do c (documentId) .collection ( 'сообщения') «. не возвращает мне то, что я ожидал.

1 Ответ

0 голосов
/ 08 апреля 2020

Нашел мой ответ на Обновите подколлекции на CloudFunctions , просто необходимо указать:

const chatId = context.params.chatId;
const usersId = context.params.usersId;

Спасибо @Frank van Puffelen!

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