繁体   English   中英

如何在Firebase中将数据用作密钥?

[英]How to use data as key in Firebase?

这是我当前的Firebase数据库配置,我要在其中使用用户名作为键,并使用CurrentUser.ID作为值。

我尝试使用字符串插值,但出现了一些错误。

function updateExistingUserRoot(username) {
  const { currentUser } = firebase.auth();
  return (dispatch) => {
    firebase.database().ref(`/ExistingUser`).push({
      `${username}`: currentUser.uid
    })
  }
}

我了解Firebase每次推送数据时都会生成一个唯一密钥,但我希望保留当前配置。

更新1

我已更改为使用set,但错误仍然存​​在。

function updateExistingUserRoot(username) {
  const { currentUser } = firebase.auth();
  firebase.database().ref(`/ExistingUser`).set({
    `${username}`: currentUser.uid
  });
}

错误:预期的属性分配。

对于所需的配置,您应该使用setupdate方法来保存或更新数据。

firebase.database().ref(`/ExistingUser`).set({
      `${username}`: currentUser.uid
})

这样,您的数据将保存在username节点中,该节点将与用户的uid映射。

希望有帮助!

如果要使用特定键创建用户,则应删除push方法(创建唯一键),并使用类似以下内容的方法:

firebase.database().ref(`/ExistingUser` + userKey).set({
    username: value...
  });

Firebase中的所有内容都是一个URL。

https://testxxx.firebaseio.com/xxx/ExistingUser

如果要在此位置创建一个键为KEY1的用户作为子级,则可以:

https://testxxx.firebaseio.com/xxx/ExistingUser/KEY1

两位先生给出的答案是正确的,但我不得不稍作调整才能使其生效。

这是代码

firebase.database().ref(`/ExistingUser/${username}`).set({
   userID: currentUser.uid
 }).then(() => console.log('Set existing user done'))
   .catch((error) => console.log(error.message))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM