我正在尝试创建一个新用户并将他们的信息存储在firebase数据库中。我成功创建了用户,但用户信息未存储在firebase中。
正在运行的功能是handleAuthWithFirebase
console.log("Storing user")
显示在控制台中,所以我不确定为什么firebase.database().ref().set
没有运行。
这是我的代码
export function handleAuthWithFirebase (newUser) {
return function (dispatch, getState) {
dispatch(authenticating());
console.log(newUser);
console.log('Signing up user');
var email = newUser.email;
var password = newUser.password;
firebase.auth().createUserWithEmailAndPassword(email, password).catch(error => {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
}).then(() => {
const user = firebase.auth().currentUser;
// Set user in Firebase
console.log("Storing user")
firebase.database().ref('/users/' + user.uid).set({
name: newUser.displayName,
username: newUser.username,
email: newUser.email
})
}).then(() => {
const user = firebase.auth().currentUser;
dispatch(isAuthed(user.uid))
})
}
}
答案 0 :(得分:0)
问题是你错过了一个子对象,所以你必须在ref之后指定它。如果你也可以发布你的数据库树,但在尝试这个并找出你的孩子之前,会更有帮助。
Location loc = new Location(40.7142408,-73.7785652,29);
driver.setLocation(loc);
答案 1 :(得分:0)
对于那些遇到这篇文章的人来说,这就是我的工作。
firebaseApp.auth()
.createUserAndRetrieveDataWithEmailAndPassword(this.state.email, this.state.password)
.then(response => {
firebaseApp.database().ref('users').child(response.user.uid).set({
firstName: this.state.firstName,
lastName: this.state.lastName,
username: this.state.username,
email: this.state.email
});
response.user.sendEmailVerification().then(response => {
AlertIOS.alert('Message', 'Sending email verification to '+this.state.email)
});
this.setState({authenticating: false})
}, error => {
AlertIOS.alert('Error', error.message);
this.setState({authenticating: false})
})