将新密钥值对添加到现有Firebase

Nic*_*ick 6 javascript python firebase

这可能是一个非常基本的问题,但到目前为止,我在google搜索后无法在线找到我的问题的答案.我有一个firebase web应用程序,其数据结构非常简单.最初,它是空的,像这样:

fireRef {
}
Run Code Online (Sandbox Code Playgroud)

我希望能够添加键值对,其中键由用户创建,值只是一些文本.例如,用户将输入他们的名称作为键,并将值作为他们的年龄.然后我想将该数据发送到服务器并让firebase现在看起来像这样:

fireRef {
    John : 25,
}
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式完成这一项:

var name = getUserName();
var age = getUserAge();
var node = {};
node[name] = age;
fireRef.set(node);
Run Code Online (Sandbox Code Playgroud)

但是,我希望多个人能够做到这一点.当我尝试将新人添加到服务器时,旧的"John:25"对变为红色并消失,只留下新的键值对.

如何保持两者并维护一堆关键值对的数据集?

lea*_*oop 9

我们在推送数据时会生成firebase中的唯一ID .

例如:

var fireRef = new Firebase('https://<CHANGE_APP_NAME>.firebaseio.com/fireRef');
var newUserRef = fireRef.push();
newUserRef.set({ 'name': 'fred', 'age': '32' });
Run Code Online (Sandbox Code Playgroud)

另一种方法是直接设置子元素:

var fireRef = new Firebase('https://<CHANGE_APP_NAME>.firebaseio.com/fireRef');
fireRef.child(1).set({'name':'user2','age':'34'});
fireRef.child(2).set({'name':'user3','age':'24'});
Run Code Online (Sandbox Code Playgroud)


Cha*_*lie 5

@ user3749797,我对这个确切的问题感到困惑。

@learningloop 提供了一个很好的解决方案,因为它实现了将数据添加到 Firebase 的任务,但是可以选择将新的 k,v(名称、年龄)对添加到单个 JSON 关联数组中,而不是推送到关联数组。实际上,@learningloop 看到:

[
    { 
        name: steve, 
        age: 34 
    }, 
    { 
        name: mary, 
        age: 22 
    }
]
Run Code Online (Sandbox Code Playgroud)

也许他的方式更好,但你和我一直在寻找这个:

    { 
        steve: 34, 
        mary: 22 
    }
Run Code Online (Sandbox Code Playgroud)

我已经设法添加到这个 k,v 对列表中

    var fireRef = new Firebase('https://<CHANGE_APP_NAME>.firebaseio.com/fireRef');
    fireRef.update({ 'jobe': '33'});
Run Code Online (Sandbox Code Playgroud)

屈服

    { 
        steve: 34, 
        mary: 22, 
        jobe: 33 
    }
Run Code Online (Sandbox Code Playgroud)

在我的火力基地。

有关保存到 Firebase 的完整文档[此处]