2017-01-14 45 views
0

我試圖創建一個新用戶並將他們的信息存儲在firebase數據庫中。我成功創建了用戶,但用戶信息未存儲在Firebase中。React Native&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

的問題是,你缺少的子對象,所以你必須參考後指定它。如果您可以發佈數據庫的樹,但在嘗試此操作並找出您的孩子之前,它會更有幫助。

 firebase.database().ref('myRef').child('myChild').set({ 
       name: newUser.displayName, 
       username: newUser.username, 
       email: newUser.email 
    }) 
+0

我想'firebase.database()。REF( '/用戶/')。子女(user.uid).SET()'而且也不能工作。 – maxwellgover

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}) 
 
      })

相關問題