【发布时间】:2018-09-13 09:58:27
【问题描述】:
我将 Firebase 添加到我的网站并创建了一个注册表单。 当用户单击“注册”按钮时,它会使用“Firebase 身份验证”创建用户,然后更新用户的 displayName,最后将有关用户的一些数据添加到数据库中:
firebase.auth().createUserWithEmailAndPassword(email, password).then(function () {
profile = firebase.auth().currentUser;
profile.updateProfile({
displayName: "name-value"
}).then(function() {
// Update successful.
firebase.database().ref("/users/" + profile.uid).set({
data:{
country: "country-value",
city: "city-value"
}
});
});
}).catch(function(error) {
// Handle Errors here.
});
在我更改数据库规则之前一切正常:
{
"rules": {
".read": true,
".write": true
}
}
}
收件人:
{
"rules": {
"users": {
".read": true,
"$user": {
".write": "auth.token.name !== null"
}
}
}
}
我使用guide 中写的 auth.token.name 来检查用户的 displayName 是否存在(我打算稍后让它检查更多相关信息)。 不知何故,“firebase 规则”“认为”auth.token.name 等于 null,即使我之前设置了 displayName。为什么会这样?我该怎么做才能让它发挥作用?
提前致谢:)
【问题讨论】:
-
您是在尝试使用之前创建的同一个用户,还是尝试注册一个新用户?
-
我创建页面的目的是注册一个新用户,更改显示名称,最后将一些关于他的数据上传到数据库。
标签: firebase firebase-realtime-database firebase-security