【问题标题】:Firebase push item custom keyFirebase 推送项目自定义键
【发布时间】:2017-11-02 17:36:48
【问题描述】:

我需要将一个对象推送到节点追随者中,但我没有找到方法。

我试试这个:

this.af.database.list(`profile/${user}/followers/`).push({[from]: true});

但我的输出是这样的

我需要下一个输出

有什么想法吗?

【问题讨论】:

    标签: firebase firebase-realtime-database angularfire2


    【解决方案1】:

    使用push() 将使用自动生成的随机唯一ID 将新节点推送到列表中。如果您需要设置特定值,则需要改用set()

    this.af.database.object(`profile/${user}/followers/${from}`).set(true);
    

    在此示例中,我使用object() 而不是list() 来创建对列表中您要创建的值的直接引用,其中${from}[from] 中的值相同你的代码。

    或者,您可以改用update() 方法:

    this.af.database.object(`profile/${user}/followers`).update({[from]: true});
    

    【讨论】:

    • 但是,如果我使用 set() 这个方法会删除关注者中的所有数据并设置为 true。
    • @MatiasCeliz 您需要确保在 profile/${user}/followers/${from} 子节点上使用 set(),其中 ${from} 是您要使用的 ID。不要在followers 节点上直接使用set()
    • 对不起,我听不懂你的意思。我只需要在节点中插入一个新元素,就像第二张图片一样。如果我使用这个 this.af.database.list ( 关注者/$ {user} ) .push ({[from]: true}); 我的结果是第一张图片。然后我尝试了this.af.database.list ( Followers / $ {user} ) set ({[from]: true}); 它适用于一个条目,如果将来您需要添加另一个关注者,此代码将替换 followers / $ {user} 中的所有数据以获取新用户数据跨度>
    • 是的,使用我的示例应该可以满足您的需求。您需要使用object() 而不是list()。我已经更新了我的答案。
    • 此代码适用于我this.af.database.object(profile/${user}/followers).update({[from]: true}); 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多