我正在使用react-native redux app。这是我新创建的firebase数据库。
一切正常,用户也可以登录和注册。但是在注册后我有这个小代码我尝试.set({ firstname, lastname })
名字,姓氏没有反映在数据库中。 (github repo:https://github.com/steelx/react-native-redux-app)
export const signUpUser = ({ firstname = "", lastname = "", email, password }) => (dispatch) => {
dispatch({ type: SIGN_UP_REQUEST });
firebase.auth().createUserWithEmailAndPassword(email, password)
.then((user) => {
// const currentUser = firebase.auth().currentUser;
// currentUser.updateProfile({
// displayName: `${firstname} ${lastname}`,
// THIS WORKS
// })
firebase.database().ref('users/' + user.uid)
// THIS DOES NOT WORK
.set({ "firstname": 'AJINKYA', "lastname": 'AJINKYA' })
.then(() => {
dispatch({ type: SIGN_UP_SUCCESS, payload: user });
Actions.home();
});
})
.catch((error) => { dispatch({ type: SIGN_UP_FAILURE, payload: authFailMessage(error.code) }); });
};
Firebase规则
{
"rules": {
"users": {
"$uid": {
".read": "auth != null",
".write": "auth != null && auth.uid == $uid"
}
}
}
}
答案 0 :(得分:0)
对不起我的不好我在uid
作为undefined
传递给了我。最初在发布此问题之前,规则已设置为已锁定。
我的规则也错了。后来我将规则更新为=> 作为快速解决方案,我添加了这些规则。现在一切都很好。
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}