gpt4 book ai didi

javascript - 如何在Firebase中访问不同 Node 的onUpdate事件?

转载 作者:太空宇宙 更新时间:2023-11-04 01:54:07 25 4
gpt4 key购买 nike

我有一个 Firebase 数据库,其中有两个同一级别的 Firebase Node 。一项名为 NotificaationKey,一项名为 requests。我在请求/状态字段上有一个 onUpdate 云函数。当 Node 更新时,我从请求 Node 获取一个字段,并使用它从NotificationKey Node 检索数据,但是当我访问Notification Node 时,我得到以下响应而不是我想要的数据。它正在打印以下日志。 log1 log2 log3 log4以下是我如何访问数据库的代码。 onUpdate 函数。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.notifyUser = functions.database.ref('/requests/{requestId}/status')
.onUpdate(event => {
const adminRefVar = event.data.adminRef.root;

return event.data.adminRef.parent.child('requestorId').once('value').then((snapshot)=>{
var uuid = snapshot.val();
console.log("Data : "+uuid );

return adminRefVar.child('/NotificationKey').orderByChild('uuid').equalTo(uuid)
.once('value').then((snapshot2)=>{
console.log("data: " + snapshot2);
for(var i in snapshot2)
{
console.log("data in snap: "+snapshot2[i]);
}

return snapshot2;
});
});
});

我不知道我做错了什么,而且我对 node.js 和 firebase 功能很陌生。预先感谢您。

最佳答案

我能够通过下面的代码访问不同的 Node 。希望它会对某人有所帮助。

exports.notifyUser = functions.database.ref('/requests/{requestId}/status').onUpdate(event => {
const adminRefVar = event.data.ref.firestore;

return event.data.adminRef.parent.child('requestorId').once('value').then((snapshot)=>{
var uuid = snapshot.val();
return admin.database().ref('NotificationKey').orderByChild('uuid').equalTo(uuid).once('value').then(snapshot => {
snapshot.forEach(function (childSnapshot) {
var value = childSnapshot.val();
console.log("notification key : " + value.notificationKey);
const payload = {
notification:{
title:'CLUTS request status has been updated',
body: 'Your ride share request has been '+event.data.val(),
badge: '1',
sound: 'default'
}
};
var userToken;
userToken = value.notificationKey;
return admin.messaging().sendToDeviceGroup(userToken, payload)
.then(function(response) {
console.log("Successfully sent message:", response);
return 0;
})
.catch(function(error) {
console.log("Error sending message:", error);
return 0;
});
});
return snapshot;
});
});
});

关于javascript - 如何在Firebase中访问不同 Node 的onUpdate事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48605083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com