2016-08-09 16 views
0

Ich habe versucht, reagieren native und firebase miteinander arbeiten, aber egal, wo ich sehe alles, was ich finde zu finden ist veraltete Tutorials. Als ich endlich mein Firebase-Objekt initialisieren konnte, wurden die Methodennamen, die wir in anderen Tutorials verwenden, nicht mit dem Objekt definiert, das ich definiert hatte. Ich bin damit ein bisschen verloren. Jede Hilfe würde massiv geschätzt werden. Danke.Firebase Login zu arbeiten mit reagieren native

Antwort

1

ok nach ein wenig herumspielen fand ich, dass dies eine art war, wie ich erreichen konnte, was ich brauchte.

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

Sie fanden die Lösung bereits, aber ich habe es mit Redux wie so angeschlossen (auch Benutzer erstellt, wenn nicht bereits vorhanden)

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

Ich wurde auch gefragt, ob Sie eine gefunden haben, Möglichkeit, die Anmeldung beim erneuten Öffnen der App dauerhaft zu machen?