使用update()将数据同时写入完全独立的位置

时间:2017-03-23 10:42:51

标签: javascript firebase firebase-realtime-database

在我的firebase应用程序中,当新用户注册时,我将他们的初始数据(如displayname,emai,photourl)添加到顶级users节点下的数据库中。这很好。

现在,当用户发布状态时,我想将帖子上传到顶级statuses节点,其中保留所有用户状态。同时我想将帖子上传到当前用户的帖子节点,即users/currentuser/posts

我正在关注官方firebase网站here.

上显示的方法

问题是当我点击帖子按钮时没有任何事情发生,没有数据发布到数据库

单击发布按钮时调用的函数:

function postStatus(){
    var ref = firebase.database().ref("allstatuses");
    var user = firebase.auth().currentUser;

    var newStatusRef = ref.push();
    var newStatusKey = newStatusRef.key();

    var statusData = {
        status: postInput.val(),
        likes: 0,
        dislikes: 0
    };
    var updateUserStatus = {};
    updateUserStatus["users/" + user.uid + "/" + newStatusKey] = statusData;
    updateUserStatus["allstatuses/" + newStatusKey] = statusData;

    if(user){
        firebase.database().ref().update(updateUserStatus);
    }else{
        alert("please login");   
    }

}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据API参考link,密钥不是密钥()

更改此

var newStatusKey = newStatusRef.key();

var newStatusKey = newStatusRef.key;