# #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