#firebase #vue.js #firebase-authentication
#firebase #vue.js #firebase-аутентификация
Вопрос:
Я пытаюсь использовать Google sign, используя firebase в Vue framework. Я не знаю, в чем ошибка, может ли кто-нибудь помочь мне с этим.
vue.runtime.esm.js?2b0e:1888 TypeError: _firebase_js__WEBPACK_IMPORTED_MODULE_2__.fb.auth.GoogleAuthProvider is not a constructor
at VueComponent.socialLogin (Signin.vue?3d55:76)
at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
at HTMLButtonElement.invoker (vue.runtime.esm.js?2b0e:2179)
at HTMLButtonElement.original._wrapper (vue.runtime.esm.js?2b0e:6917)
это мой код
firebase.js
import firebase from "firebase";
var firebaseConfig = {
config
};
const fb=firebase.initializeApp(firebaseConfig);
export { fb };
Войдите в систему.vue
<script>
import { fb } from "../firebase.js";
export default {
name: "Signin",
components: {},
data() {
return {
};
},
methods: {
socialLogin() {
const provider = new fb.auth.GoogleAuthProvider();
fb.auth().signInWithPopup(provider).then((result) => {
this.$router.replace('home');
}).catch((err) => {
alert('Oops. ' err.message)
});
}
}
};
</script>
Комментарии:
1. Приложение
firebase.initializeApp
firebase вернет приложение, которое не равноfirebase
. Приложение firebase имеет методauth
, но не имеетauth
свойства. Поэтому вам нужно импортироватьfirebase
и вызыватьnew firebase.auth.GoogleAuthProvider()
.
Ответ №1:
auth
Свойство (а не auth()
функция) доступно для статического firebase
объекта, а не для вашего приложения firebase.
Вы хотите что-то более похожее на это
import firebase from "firebase/app"
import "firebase/auth" // 👈 this could also be in your `firebase.js` file
const provider = new firebase.auth.GoogleAuthProvider()
Комментарии:
1. Спасибо за решение, оно работает😄