# #javascript #angular #firebase #firebase-authentication #angularfire2
Вопрос:
Я использую аутентификацию Firebase AngularFire2
в проекте Ionic-Angular. Мне нужно иметь возможность повторно аутентифицировать своих пользователей, когда это необходимо, и , похоже , единственный способ сделать это-получить учетные данные пользователя, которые можно получить только через firebase.auth.EmailAuthProvider
объект, который не является частью AngularFire
, а только firebase
сам по себе.
Для этого я использую firebase v8, на которой EmailAuthProvider
должен быть найден объект firebase.default.auth.EmailAuthProvider
. Однако я понимаю, что firebase.default.auth
это не определено, и поэтому я не могу получить доступ EmailAuthProvider
. Единственное решение, которое я нашел, — это вернуться к firebase v7, в которой к последнему можно успешно получить доступ firebase.auth.EmailAuthProvider
. Я пока не могу перейти на firebase v9 из-за других проблем с совместимостью и не хочу оставлять v7, так как он дает мне множество уязвимостей высокого и среднего уровня.
Редактировать
Я получаю учетные данные таким образом:
import * as firebase from "firebase/app";
...
firebase.default.auth.EmailAuthProvider.credential(email, password)
И я получаю следующую ошибку:
Uncaught TypeError: Cannot read properties of undefined (reading 'EmailAuthProvider')
В моем файле package.json есть "@angular/fire": "^6.1.5"
и "firebase": "^8.10.0"
TLDR
В Firebase v8, как получить доступ EmailAuthProvider
или , в более общем плане, как повторно авторизовать пользователя?
Комментарии:
1. Если вы добавите свой код, это будет намного полезнее, чем жаловаться на проблему.
firebase.default.auth
вероятно, это должно было быть вызваноfirebase.auth()
.
Ответ №1:
Попробуйте изменить импорт, как показано ниже:
import firebase from "firebase/app";
import "firebase/auth" // <-- make sure you have auth imported
Затем обратитесь к поставщику электронной почты, как это:
firebase.auth.EmailAuthProvider.credential(email, password)