gpt4 book ai didi

javascript - 如何通过节点js获取交易结果Firebase中的值(value)

转载 作者:行者123 更新时间:2023-11-28 13:54:30 24 4
gpt4 key购买 nike

我正在使用 Swift、Firebase 和 Nodejs 构建一个 iOS 消息应用程序。

我的目标:
每当用户发送消息并将消息数据(例如 senderId、receiverId、messageText)写入节点(/messages/{pushId}/)内的 Firebase 数据库时,我想使用事务方法使消息计数递增 1 Firebase 向接收方用户提供并显示通知。

到目前为止我取得的进展和我面临的问题:
我已经使用事务方法成功地增加了消息计数 (totalCount),但是我无法在事务结果中获取值(这是函数日志的图像)

a busy cat

我想在快照中获取“value_: 1”(这是递增的消息计数)并将其放入徽章参数。

exports.observeMessages = functions.database.ref('/messages/{pushId}/')
.onCreate((snapshot, context) => {

const fromId = snapshot.val().fromId;
const toId = snapshot.val().toId;
const messageText = snapshot.val().messageText;

console.log('User: ', fromId, 'is sending to', toId);

return admin.database().ref('/users/' + toId).once('value').then((snap) => {
return snap.val();

}).then((recipientId) => {
return admin.database().ref('/users/' + fromId).once('value').then((snaps) => {
return snaps.val();

}).then((senderId) => {
return admin.database().ref('/user-messages/' + toId + '/totalCount').transaction((current) => {
return (current || 0) + 1
}).then((readCount) => {

console.log('check readCount:', readCount);

var message = {

data: {
fromId: fromId,
badge: //I want to display the message count here
},

apns: {
payload: {
aps: {
alert: {
title: 'You got a message from ' + senderId.username,
body: messageText
},

"content-available": 1
}
}
},

token: recipientId.fcmToken
};

return admin.messaging().send(message)
}).then((response) => {
console.log('Successfully sent message:', response);
return response;
})
.catch((error) => {
console.log('Error sending message:', error);
//throw new error('Error sending message:', error);
})
})
})
})

有人知道怎么做吗?提前致谢。

最佳答案

transaction() 的 API 文档建议来自事务的 promise 将接收一个具有属性 snapshot 的对象,其中包含在事务位置写入的数据的快照。所以:

admin.database.ref("path/to/count")
.transaction(current => {
// do what you want with the value
})
.then(result => {
const count = result.snapshot.val(); // the value of the count written
})

关于javascript - 如何通过节点js获取交易结果Firebase中的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54058785/

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