Реагировать на собственную функцию Firebase Auth - PullRequest
0 голосов
/ 06 сентября 2018

Я использую приложение реагировать на родную версию crud с использованием хранилища Firebase в реальном времени Я использую функцию аутентификации Firebase с регистрацией электронной почты и паролей. но мой firebase auth не работает. Это получает больше проблем с подключением Firebase. Я использовал эту функцию для подключения FireBase.

  componentWillMount() {
      firebase.initializeApp({
       apiKey: 'xxxxxxxxxxxxxxxxxxxxxxxx',
       authDomain: 'xxxxxxxxxxxxxxxxxxxxxx',
       databaseURL: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
       projectId: 'xxxxxxxxxxxxxxxxxxxxx',
       storageBucket: 'xxxxxxxxxxxxxxxxxxxxxxxx',
       messagingSenderId: 'xxxxxxxxxxxxxxx'
     });
  }

Моя функция авторизации кнопки входа выглядит так:

  state = { email: '', password: '', error: '' };

  onButtonPress() {
    const { email, password } = this.state;

    firebase.auth().signInWithEmailAndPassword(email, password)
    .catch(() => {
      firebase.auth().createUserWithEmailAndPassword(email, password)
      .catch(() => {
        this.setState({ error: 'Authenticaton Failed.' });
      });
    });
   }

Я импортирую библиотеки Firebase следующим образом:

import * as firebase from 'firebase';
import 'firebase/firestore';
import 'firebase/auth';

Но эти конфигурации не работают. Это показывает мне эту ошибку:

undefined is not a function (evaluating 'firebase.auth()')

Я использовал для получения значений ввода текста этот метод:

    value={this.state.password}
    onChangeText={password => this.setState({ password })}

1 Ответ

0 голосов
/ 06 сентября 2018

ваша конфигурация firebase существует только в вашем componentDidMount. Попробуйте вот так:
Создайте файл <namefile>.js где хотите и добавьте:

import * as firebase from 'firebase'
import 'firebase/auth';

const config = {
    apiKey: "your key",
    authDomain: "domain",
    databaseURL: xxxx",
    projectId: "xxxx",
    storageBucket: "xxx",
    messagingSenderId: "xxxx"
};

if (!firebase.apps.length) {
    firebase.initializeApp(config);
}

const auth = firebase.auth();

export {
    auth
}; 

импорт auth в вашем компоненте и в вашем методе кнопки измените ваш код на:

auth.signInWithEmailAndPassword

это должно работать и каждый раз, когда вам нужно использовать auth, вам просто нужно импортировать его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...