Интеграция Firebase с приложением React-Native IOS не удалась - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь интегрировать службу Firebase с платформой React-Native.Я пытаюсь следовать этому руководству в Udemy: https://www.udemy.com/the-complete-react-native-and-redux-course/

Шаги, за которыми я следовал:

  1. Загруженная база данных Firebase с помощью команды npm: установка npm --save response-native-firebase
  2. Создание проекта в консоли Firebase.
  3. Вставка конфигурации, созданной Firebase, в собственный код React.

    Класс App расширяет Компонент {

    componentWillMount() {
    firebase.initializeApp({
        apiKey: 'AIzaSyAMuW4adFuW_XoYvpvke_iHTvlAkuVJ7Fk',
        authDomain: 'authproj2.firebaseapp.com',
        databaseURL: 'https://authproj2.firebaseio.com',
        projectId: 'authproj2',
        storageBucket: 'authproj2.appspot.com',
        messagingSenderId: '654736603029'
      });
    
    firebase.auth().onAuthStateChanged((user) => {
        if(user)
        {
            this.setState( {loggedIn:true} );
        }
        else {
            this.setState( {loggedIn: false } );
        }
    });
    

    }}

И в другом компоненте React я создаю форму входа, в которой есть кнопка «Отправить».

Функция onButtonPress:

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

    this.setState({error: '', loading: true});

    firebase.auth().signInWithEmailAndPassword(email, password)
    .then(this.onLoginSuccess.bind(this))
    .catch(() => {
        firebase.auth().createUserWithEmailAndPassword(email, password)
        .then(this.onLoginSuccess.bind(this))
        .catch(this.onLoginFailure.bind(this));
    });
    }

Это функции onLoginSuccess и OnLoginFailure:

onLoginSuccess () {
this.setState( {email:'', password:'', error:'', loading:false});

}

onLoginFailure () {
this.setState( {error: "Authentication Failure!!", loading:false } );

}

Но когда я нажимаю на кнопку, никаких действий не предпринимаетсяместо.В идеале он должен создать новую учетную запись, если адрес электронной почты и пароль введены впервые, и показать другую страницу, если адрес электронной почты и пароль верны.Но где-то интеграция Firebase с React-native идет неправильно.

1 Ответ

0 голосов
/ 01 декабря 2018

Вы используете веб-SDK, для которого требуется пакет firebase, но у вас установлен пакет react-native-firebase.

Если вы хотите продолжить работу с написанным вами кодом и firebase, вам следует установить пакет firebase .

Чтобы решить вашу проблему, вы должны установить firebase пакет

Однако для правильного использования firebase в мобильной среде рекомендуется использовать react-native-firebase, но в этом случаеfirebase.initializeApp({ становится бессмысленным, поскольку инициализация firebase в мобильном устройстве происходит с использованием файлов Google-services.json и Google-services.plist, предоставляемых консолью firebase в Android и iOS соответственно, при использовании пакета react-native-firebase.

Если вы хотитеперейдите с реактивной базой firebase, пожалуйста, обратитесь это .

...