Я пытаюсь вызвать функцию, к которой токен будет доступен во вложенной коллекции, просматривая документы, не указывая его. В дартс я мог бы использовать для этого 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 ( 'сообщения') «. не возвращает мне то, что я ожидал.