React-Native,Firebase和一些Reloads,登录停止工作

时间:2018-03-16 23:46:20

标签: firebase react-native firebase-realtime-database firebase-authentication react-native-android

我正在使用firebase测试react-native(android),我做了一个小应用程序来验证firebase。

问题是,当我点击R + R 3或4次时,firebase会停止对用户进行身份验证。

在./src/actions/login.js中有一个我尝试调试的console.log。 当promisses(.then())出现时,我有另一个console.log(用户),但当我重新加载应用程序3或4次时,console.log(用户)停止出现。但其他两个console.log(启动auth)和console.log(完成auth)每次都有效。

如果我关闭Metro Bundler并再次打开,身份验证过程将第一次,第二次,但如果我重新加载应用程序3或4次(有时需要大量R + R),将不会发生身份验证过程我无法在.catch()上获得错误。

有人面临这个问题还是可以帮助我? 感谢。

这是我的代码:

./ SRC /配置/ app_config_firebase.js

import firebase from 'firebase';
import {
  FIREBASE_API_KEY,
  FIREBASE_AUTH_DOMAIN,
  FIREBASE_DATABASE_URL,
  FIREBASE_PROJECT_ID,
  FIREBASE_STORAGE_BUCKET,
  FIREBASE_MESSAGING_SENDER_ID
} from './constants';

const config = {
  apiKey: FIREBASE_API_KEY,
  authDomain: FIREBASE_AUTH_DOMAIN,
  databaseURL: FIREBASE_DATABASE_URL,
  projectId: FIREBASE_PROJECT_ID,
  storageBucket: FIREBASE_STORAGE_BUCKET,
  messagingSenderId: FIREBASE_MESSAGING_SENDER_ID
};

firebase.initializeApp(config);

export const database = firebase.database();
export const auth = firebase.auth();

./ SRC /动作/ login.js

import { auth } from '../config/app_config_firebase';

export const loginUser = () => {

    console.log('starting auth');
    auth.signInWithEmailAndPassword('user@user.com', '123456')
    .then((user) => console.log(user))
    .catch(erro => console.log(erro));
    console.log('finish auth');

}

./ App.js

import React, { Component } from 'react';
import {
  View,
  Button
} from 'react-native';
import { loginUser } from './src/actions/login';


export default class App extends Component {

  _autenticarUsuario() {
    loginUser();
  }

  render() {
    return (
      <View>
          <Button 
            title='Login'
            onPress={() => this._autenticarUsuario()}
          />
      </View>
    );
  }
}

1 个答案:

答案 0 :(得分:0)

您可以在loginUser功能

上试试这个
auth().signInAndRetrieveDataWithEmailAndPassword('user@user.com', '123456')
.then((user) => console.log(user))
.catch(erro => console.log(erro));
console.log('finish auth');

它对我有用 希望它会帮助你...