【问题标题】:Angular & Firebase: Create new nodeAngular & Firebase:创建新节点
【发布时间】:2017-08-05 00:38:24
【问题描述】:

我需要在 Firebase 中构建相同的结构。如何创建新节点terriangen,添加{key} 并设置我的对象数据?

-usernames  
 -{UID}    
  -mylibrary      
   -{key}    
  -terriangen       
   -{key}        
    type:mountain         
    name:1.png

我的代码:

const newObjRef = firebase.database()
              .ref('usernames')
              .child(userId)
              .child('mylibrary/')
              .push();
            newObjRef.set({
              type: terrainType,
              name: terrainName
            });

【问题讨论】:

    标签: angular typescript firebase firebase-realtime-database


    【解决方案1】:

    您正在寻找多地点更新:

    const newKey = firebase.database().ref().push.key;
    const updates = { };
    updates["mylibrary/"+key] = {
              type: terrainType,
              name: terrainName
            };
    updates["terriangen/"+key] = {
              type: terrainType,
              name: terrainName
            };
    firebase.database()
            .ref('usernames')
            .child(userId)
            .update(updates)
    

    最大的区别:

    • 我们预先生成唯一密钥,以便我们可以在两个位置使用它
    • 我们将新数据的部分路径移动到键中,这样我们就可以执行所谓的多位置更新。这可确保libraryterriangen 节点中的现有项目不会被覆盖。

    【讨论】:

    • 感谢您的回复。但我只需要创建一个新节点terriangen 而不更新另一个位置。因此,如果我对您的理解正确,我可以在没有这部分的情况下使用您的方法 - updates["mylibrary/"+key]。我的新节点将被创建,对吗?
    猜你喜欢
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多