这是我当前的Firebase数据库配置,我想使用username作为键,使用CurrentUser.ID作为值。
我尝试使用字符串插值但是我遇到了一些错误。
function updateExistingUserRoot(username) {
const { currentUser } = firebase.auth();
return (dispatch) => {
firebase.database().ref(`/ExistingUser`).push({
`${username}`: currentUser.uid
})
}
}
我知道firebase每次推送数据时都会生成一个唯一的密钥,但我想保留当前的配置。
更新1
我已更改为使用设置,但错误仍然存在。
function updateExistingUserRoot(username) {
const { currentUser } = firebase.auth();
firebase.database().ref(`/ExistingUser`).set({
`${username}`: currentUser.uid
});
}
错误:预期的属性分配。
答案 0 :(得分:0)
对于您想要的配置,您应该使用set
或update
方法来保存或更新数据。
firebase.database().ref(`/ExistingUser`).set({
`${username}`: currentUser.uid
})
这样,您的数据将保存在username
节点中,该节点将与用户的uid
进行映射。
希望有所帮助!
答案 1 :(得分:0)
如果要创建具有特定密钥的用户,则应删除push
方法(创建唯一密钥)并使用以下内容:
firebase.database().ref(`/ExistingUser` + userKey).set({
username: value...
});
Firebase中的所有内容都是网址。
https://testxxx.firebaseio.com/xxx/ExistingUser
如果您想在此位置创建一个KEY1键作为孩子的用户,您将拥有:
https://testxxx.firebaseio.com/xxx/ExistingUser/KEY1
答案 2 :(得分:0)
两位先生给出的答案是正确的,但我不得不稍微调整一下才能让它发挥作用。
这是代码
firebase.database().ref(`/ExistingUser/${username}`).set({
userID: currentUser.uid
}).then(() => console.log('Set existing user done'))
.catch((error) => console.log(error.message))