【问题标题】:Find object in Firebase by one value通过一个值在 Firebase 中查找对象
【发布时间】:2018-09-02 17:37:32
【问题描述】:

我有下一个数据库列表(用户名 + 用户 ID)。

如何通过用户 ID 找到对象并更改其密钥(用户名)?

我正在使用 AngularFire2 和 Angular 5。

【问题讨论】:

    标签: firebase firebase-realtime-database angularfire angularfire2


    【解决方案1】:

    您可以使用如下查询通过其值找到子节点:

    var users = firebase.database().reference("usernames");
    var query = users.orderByValue().equalTo("Sk6I..."ltA2");
    

    通过将侦听器附加到此查询,您将能够找到与 UID 匹配的用户(或“任何用户”,因为技术上可能有更多具有相同值的键)的引用和键。

    但是您不能重命名节点。您必须删除现有节点,然后创建一个新节点。有关更多信息,请参阅:

    【讨论】:

    • 得到错误Property 'getInstance' does not exist on type 'typeof FirebaseDatabase'.
    • 糟糕,您使用的是 AngularFire/JavaScript,我最初回答的是 Android。我更新了我的答案。
    【解决方案2】:

    我的情况的解决方案:

    this.db.list('usernames', ref => ref.equalTo(uid)).remove() // Remove old value
    this.db.list('usernames', ref => ref.equalTo(uid)).set(
      username, uid
    ) // Create new value
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 2017-05-10
      • 2021-08-04
      • 2019-01-15
      • 2015-03-10
      • 1970-01-01
      • 2021-05-29
      相关资源
      最近更新 更多