【发布时间】:2020-10-06 01:39:31
【问题描述】:
如果ref 中有要删除的节点,我正在尝试更新节点.child("Merchans").child(userId).child(merchanId) 中的status 值。
但是remove().then()返回的promise总是undefined无论节点是否存在。
exports.cancelAnnouncements = functions.database
.ref('Cancelads/{userId}')
.onCreate((snapshot, context) => {
const userId = context.params.userId;
const targetCountry = snapshot.val().country;
const targetState = snapshot.val().state;
const startTime = snapshot.val().ini;
const merchanId = snapshot.val().merchanId;
const status = snapshot.val().status;
var ref;
if (status === 1) {
const targetRegion = getTargetRegion(targetCountry, targetState);
ref = admin.database().ref()
.child('Queue')
.child(targetRegion)
.child(startTime.toString())
.child(merchanId);
console.log("inside queue");
} else if (status === 2) {
ref = admin.database().ref()
.child('Announcements')
.child(targetCountry)
.child(targetState)
.child(merchanId);
console.log("inside announcements");
}
return ref.remove().then((result) => {
if (result === null || result === undefined) return console.log("RESULT IS NULL OR UNDEFINED", result);
return admin.database().ref()
.child("Merchans")
.child(userId)
.child(merchanId)
.update({status: 3});
})
.catch(error => {
return console.log("error", error);
});
});
我的问题是:如何检查节点是否被删除?因为在节点不存在的情况下不会调用.catch()块。
【问题讨论】:
标签: node.js firebase-realtime-database google-cloud-functions