使用Firebase和Angular,如何检索从其他页面生成的密钥?

时间:2017-12-06 23:50:16

标签: angular firebase firebase-realtime-database

我正在创建一个购物清单应用程序,用于在用户列表中存储食物ID。此列表的名称是使用.push方法生成的,该方法在用户注册时触发一次,并始终保持不变。我需要在编辑食物属性的其他页面上检索此值。

这是我的数据库结构:

"userlist" : {
  {
    "-L-i60DHuiX6jba6TZLt" : {
      "list" : {
        "-L-4FJ9EaFjtDT_7XO6c" : {
          "category" : "Beverages",
          "foodname" : "7Up",
          "state" : "on"
        },
        "-L-i4dIBkloIxZPtY3Ge" : {
          "category" : "bread",
          "foodname" : "toast",
          "state" : "on"
        }
      }
    }
  }
}

如何检索显示的第一个值“-L-i60DHuiX6jba6TZLt”?

1 个答案:

答案 0 :(得分:0)

push()方法不会返回生成的密钥,即使它是在本地生成的。

因此,在这种情况下,您应该生成自己的密钥,您可以在应用程序中保留该密钥,而不是使用push()。

// Generate new key (client side)
let newKey = ref.push().key();

然后,您可以只调用特定对象ref上的set()或update(),而不是推送到列表(它还不存在)。

ref(`/userlist/${newKey}`).set({ category: 'bread' });