React Native — Ошибка FirebaseError: Firebase: Приложение Firebase «[ПО УМОЛЧАНИЮ] » не создано

# #javascript #android #firebase #react-native

Вопрос:

Я пытаюсь выполнить аутентификацию по электронной почте, когда возникает эта проблема

Ошибка FirebaseError: Firebase: Приложение Firebase » [ПО УМОЛЧАНИЮ]» не создано — вызовите приложение Firebase. initializeApp() (приложение/без приложения).

Из того, что я читал, люди говорят, что эта проблема связана с проблемой синхронизации, но я не уверен, в чем причина этой ошибки в моем приложении

 import React from 'react';
import {ScrollView, StyleSheet, Text, View} from 'react-native';
import {Button, Gap, Input} from '../../components/atoms';
import {Fire} from '../../config';
import {Header} from '../../components/molecules';
import {useForm} from '../../utils';

import {getAuth, createUserWithEmailAndPassword} from 'firebase/auth';

export default function Register() {
  const [form, setForm] = useForm({
    fullName: '',
    bloodType: '',
    email: '',
    password: '',
  });

  const onContinue = () => {
    console.log(form);
    const auth = getAuth();
    createUserWithEmailAndPassword(auth, form.email, form.password)
      .then(success => {
        // Signed in
        console.log('register success: ', success);
        // ...
      })
      .catch(error => {
        const errorMessage = error.message;
        console.log('error register: ', errorMessage);
        // ..
      });
  };

  return (
    <View>
      <Header title="Register User" />
      <View style={styles.content}>
        <ScrollView showsVerticalScrollIndicator={false}>
          <Input
            label="Full Name"
            value={form.fullName}
            onChangeText={value => setForm('fullName', value)}
          />
          <Gap height={24} />
          <Input
            label="Golongan Darah"
            value={form.bloodType}
            onChangeText={value => setForm('bloodType', value)}
          />
          <Gap height={24} />
          <Input
            label="Email"
            value={form.email}
            onChangeText={value => setForm('email', value)}
          />
          <Gap height={24} />
          <Input
            label="Password"
            value={form.password}
            onChangeText={value => setForm('password', value)}
            secureTextEntry
          />
          <Gap height={40} />
          <Button title="Register" onPress={onContinue} />
        </ScrollView>
      </View>
    </View>
  );
}
 

Я поставил свою конфигурацию (Огонь) перед импортом getAuth, так что мне сейчас чего-то не хватает?

Сообщение об ошибке из эмулятора Android

Конфигурация Firebase (Огонь)

Комментарии:

1. Можете ли вы поделиться файлом конфигурации (из которого вы импортируете Fire)? Я бы рекомендовал инициализировать аутентификацию в том же файле и экспортировать ее оттуда.

2. Я поместил файл конфигурации в нижней части @Dharmaraj

Ответ №1:

Я бы рекомендовал инициализировать и экспортировать необходимые службы Firebase в конфигурации, как показано ниже:

 import { initializeApp } from 'firebase/app'
import { getAuth } from 'firebase/auth'

const Fire = initializeApp({...firebaseConfig})

const auth = getAuth(Fire);

export { auth }
 

Теперь вы можете импортировать этот auth экземпляр и использовать его createUserWithEmailAndPassword вместо использования getAuth() в каждом компоненте.