Кажется, я не могу найти правильный способ использования функций read/write
для администратора в облачных функциях. Я работаю над функцией обмена сообщениями, которая читает новые сообщения, созданные в базе данных реального времени с помощью облачных функций Node.js, и использует снимок для ссылки на путь. Вот моя начальная функция экспорта:
var messageRef = functions.database.ref('Messages/{chatPushKey}/Messages/{pushKey}');
var messageText;
exports.newMessageCreated = messageRef.onCreate((dataSnapshot, context) => {
console.log("Exports function executed");
messageText = dataSnapshot.val().messageContent;
var chatRef = dataSnapshot.key;
var messengerUID = dataSnapshot.val().messengerUID;
return readChatRef(messengerUID, chatRef);
});
А вот функция, которая читает из возвращенного значения:
function readChatRef(someUID, chatKey){
console.log("Step 2");
admin.database.enableLogging(true);
var db;
db = admin.database();
var userInfoRef = db.ref('Users/' + someUID + '/User Info');
return userInfoRef.on('value', function(snap){
return console.log(snap.val().firstName);
});
}
В журнале облачных функций firebase я могу прочитать все console.logs, кроме одного внутри return userInfoRef.on...
. Мой синтаксис неверен? Я попытался несколько других вариантов для чтения оснастки. Возможно я не использую обратные вызовы эффективно? Я точно знаю, что мой ключ учетной записи службы и функции администратора обновлены.
Если есть другое направление, на котором я должен сосредоточиться, пожалуйста, дайте мне знать.