Я пытаюсь написать облачную функцию, которая выполняет следующие действия:
- Прослушивание нового создания в узле 'posts / {postid} / comments / {commentsid} /'. (Это делается из базы данных pu sh из кода внешнего интерфейса). У этого узла будет UID комментатора в дочернем узле 'uid.
- Используя uid в дочернем узле, найдите имя пользователя, псевдоним и изображение профиля комментатора в узле' users / uid 'и зарегистрируйте их. .
- Обновите узел 'posts / {postid} / comments / {commentsid} /' соответствующими дочерними узлами для имени пользователя, псевдонима и изображения профиля.
Код ниже Работает нормально, пока последней части, которую пытаются сделать, нет. 3. Сообщение об ошибке «Функция вернула неопределенное, ожидаемое обещание или значение».
Я думаю, что это проблема синтаксиса, заданная c для Firebase. Может ли кто-нибудь указать мне правильный синтаксис для выполнения задачи?
Большое спасибо!
exports.commentsupdate = functions.database.ref('posts/{postid}/comments/{commentsid}/')
.onCreate((snapshot,context) => {
const uid=snapshot.val()['uid'];
let username="";
let nickname="";
let profile_picture="";
const ref1=database.ref('users/'+uid);
ref1.once('value',function(ssnapshot){
username=ssnapshot.val()['username'];
nickname=ssnapshot.val()['nickname'];
profile_picture=ssnapshot.val()['profile_picture'];
}).then(()=>{
return snapshot.ref.update({
username:username,
nickname:nickname,
profile_picture:profile_picture
})
})
});