2016-08-09 11 views
0

私は、ネイティブとfirebaseをお互いに反応させようとしてきましたが、どこにいても私は古くなったチュートリアルがあるようです。 私は最終的にfirebaseオブジェクトを初期化できましたが、他のチュートリアルで使用されているメソッド名は、定義したオブジェクトで定義されていませんでした。 私はこれで少し迷っています。 ご協力いただければ幸いです。 ありがとうございます。firebaseのログインが正常に動作するようにする

import React, { Component } from 'react'; 

import {View} from 'react-native'; 

import * as Firebase from 'firebase'; 

var firebaseConfig = { 
    apiKey: '....', 
    authDomain: '....', 
    databaseURL: 'https://....', 
    storageBucket: '...', 
}; 

Firebase.initializeApp(firebaseConfig, 'unique_id'); 

class LoginProcess extends Component { 
    constructor(props) { 
     super(props); 
     var fbRef = Firebase; 
    } 

    login(email, password) { 
     if (this.props.onLoginRequested) { 
      this.props.onLoginRequested(); 
     } 

     // Firebase.authWithPassword({ 
     // 'email': email, 
     // 'password': password 
     // }, 
     // (error, user_data) => { 
     // if (error) { 
     //  console.log('Login Failed. Please try again'); 
     // } 
     // else { 
     //  AsyncStorage.setItem('user_data', JSON.stringify(user_data)); 
     //  console.log(JSON.stringify(user_data)) 
     // } 
     // }); 
    } 

    render() { 
     return (<View/>) 
    } 
} 

module.exports = LoginProcess; 

答えて

1

私はこれが私が私が必要としたものを達成することができた1つの方法であることがわかった。

export const loginUser = ({ email, password }) => { 
    return (dispatch) => { 

dispatch({ type: LOGIN_USER }); 

firebase.auth().signInWithEmailAndPassword(email, password) 
    .then(user => loginUserSuccess(dispatch, user)) 
    .catch(() => { 
    firebase.auth().createUserWithEmailAndPassword(email, password) 
     .then(user => loginUserSuccess(dispatch, user)) 
     .catch(() => loginUserFail(dispatch)); 
    }); 
}; 
}; 

const loginUserSuccess = (dispatch, user) => { 
    dispatch({ 
    type: LOGIN_USER_SUCCESS, 
    payload: user 
    }); 
    Actions.main(); 
}; 

私も思っていたが、あなたが発見した場合は(まだ存在しない場合にも、ユーザーが作成されます)

import React, { Component } from 'react'; 

import {View} from 'react-native'; 

import * as Firebase from 'firebase'; 

var firebaseConfig = { 
    apiKey: '.....', 
    authDomain: '......', 
    databaseURL: 'https://......', 
    storageBucket: '......', 
}; 

const firebaseApp = Firebase.initializeApp(firebaseConfig, 'unique_id'); 

const auth = firebaseApp.auth(); 

class LoginProcess extends Component { 
    login(email, password) { 
     if (this.props.onLoginRequested) { 
      this.props.onLoginRequested(); 
     } 
     // auth.createUserWithEmailAndPassword // for signup 
     auth.signInWithEmailAndPassword(email, password) 
     .then((data) => { 
      if (this.props.onLoginSuccess) { 
       this.props.onLoginSuccess(data) 
      } 
     }) 
     .catch((error) => { 
      var errorCode = error.code; 
      var errorMessage = error.message; 

      if (this.props.onLoginError) { 
       this.props.onLoginError(error.code, error.message) 
      } 
     }); 
    } 

    render() {return <View/>;} 
} 

module.exports = LoginProcess; 
0

あなたは既に解決策を見つけたが、私はそれがとても似再来とフックアップしていそれはアプリを再オープンするとログインを維持する方法ですか?

関連する問題