我一直在学习并暂时掌握了firebase。
我正在建立一个博客文章webapp(在官方firebase示例中提供)作为学习示例;
我还要添加自定义通知系统,以便用户在登录时可以查看通知。
每当用户喜欢或评论博客帖子时,都会在帖子的作者uid节点下创建数据路径,如下所示:
--user-notifications
----uid1
--------postid
------------notif: 'notification text'
------------postId: postId
------------viewed: false
------------createdAt: 'some date'
----uid2
--------postid
------------notif: 'notification text'
------------postId: postId
------------viewed: false
------------createdAt: 'some date'
我没有为每个喜欢或评论发送单独的通知,而是希望实现facebook的通知类型,其中特定帖子的所有喜欢都在一个通知中。例如: john,kate和其他人喜欢您的帖子或 jane,todd和其他人对您的帖子发表了评论。
对于上面提到的场景,我使用的交易如下:
var sendCustomNotification = function(fromUID, recieverUID, userName, actionText, postID){
const ref = firebase.database().ref("user-notifications/" + recieverUID + "/" + postID);
if(fromUID !== recieverUID){
ref.transaction(function(obj){
if(obj){
//if notification is not viewd by the user
if(obj.viewed){
obj.notif = userName + actionText;
obj.viewed = false;
}else{
//if notification is viewd by the user the the user's names gets added into one
obj.notif = userName + ' and more ' + actionText;
}
}else{
ref.set({
notif: userName + ' '' + actionText,
statusId: postID,
viewed: false,
createdAt: formatDate(new Date())
});
}
return obj;
})
}
};
我在用户评论或喜欢帖子的代码中使用此sendCustomNotification()
现在的问题是:
当用户评论或喜欢调用sendCustomNotification()
时,在实时数据库中,节点会按预期创建或更新,但会立即再次删除。
不知道这种行为的原因是什么