Не удалось импортировать Firebase JS SDK с помощью React Native Expo

# #javascript #firebase #react-native #firebase-authentication #expo

Вопрос:

В моем приложении React Native я пытаюсь использовать Firebase JS SDK с Expo, как указано в этом руководстве, хотя после установки зависимостей через expo install firebase я не могу импортировать модули из firebase/auth . Вызов соответствующих методов, например getAuth() , приводит к следующей ошибке:

TypeError: (0, _auth.getAuth) is not a function. (In '(0, _auth.getAuth)()', '(0, _auth.getAuth)' is undefined)

Я также не могу импортировать модули из firebase/database и firebase/firestore т. Д.

Мой проект настроен с использованием Typescript, но я также столкнулся с этой проблемой в проекте только для JS.

Я могу импортировать firebase из firebase/app , но не из соответствующих модулей: введите описание изображения здесь

изменить: я использую getAuth() и другие методы в следующем контексте:

 React.useEffect(() => {

 if (response?.type === "success") {
  const { id_token } = response.params;

  const auth = getAuth();      
  const provider = new GoogleAuthProvider();
  const credential = provider.credential(id_token);
  signInWithCredential(auth, credential);
 }
}, [response]);
 

Я использую Firebase 8.2.3.

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

1. Можете ли вы поделиться полным, включая использование getAuth()? Также, какую версию Firebase вы установили ?

2. Я обновил вопрос, я использую Firebase 8.2.3

Ответ №1:

Синтаксис импорта, который вы используете, предназначен для Firebase SDK версии 9 и более поздних версий. Для версии 8 и ниже используйте:

 import firebase from 'firebase/app';
import 'firebase/auth';
...
 

А затем используйте синтаксис v8, как показано здесь.

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

1. Спасибо, это работает. Я действительно не понимаю, почему руководство Expo использует синтаксис SDK v9 при expo install firebase установке v8. Кроме того, их последняя версия SDK (v42) еще даже не совместима с Firebase SDK v9, поэтому я понятия не имею, что приходило им в голову при написании этого руководства/документации.

Ответ №2:

к сожалению, последняя версия expo sdk несовместима с firebase9, и если вы используете эту версию firebase, вы увидите сигналы странной ошибки используйте firebase версии 8