我在Firebase中创建了一个Web应用程序项目。并添加了所有Firebase配置脚本,包括为项目提供的api密钥。我想使用firebase将Google登录集成到网络应用中,并且我已按照Firebase文档提供的文档进行操作。但谷歌登录按钮无法正常工作,一旦我加载index.html,它就会在控制台上抛出这些错误。我已经尝试了所有方法来消除这些错误,但我找不到任何解决方案。请帮忙!
错误:
Cannot instantiate firebase-auth - be sure to load firebase-app.js first.
Cannot instantiate firebase-database - be sure to load firebase-app.js first.
Cannot instantiate firebase-messaging- be sure to load firebase-app.js first.
Cannot instantiate firebase-functions - be sure to load firebase-app.js first.
EDIT1
码:
<!-- Firebase App is always required and must be first -->
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase.js"></script>
<!-- Add additional services that you want to use -->
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-messaging.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.3.0/firebase-functions.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "************",
authDomain: "*******.firebaseapp.com",
databaseURL: "https://******.firebaseio.com",
projectId: "**********",
storageBucket: "****.appspot.com",
messagingSenderId: "*************"
};
firebase.initializeApp(config);
</script>
<!-- Gmail Login Code START -->
<div style="text-align:center;">
<button onclick = "googleSignin()">Google Signin</button>
<button onclick = "googleSignout()">Google Signout</button>
</div>
<script>
var provider = new firebase.auth.GoogleAuthProvider();
function googleSignin() {
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
}
function googleSignout() {
firebase.auth().signOut().then(function() {
// Sign-out successful.
}).catch(function(error) {
// An error happened.
});
}
</script>
<!-- Gmail Login Code END -->
根据我的经验,对于Firebase身份验证,您需要以下3个脚本:
<script src="https://www.gstatic.com/firebasejs/5.0.4/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/5.0.4/firebase-auth.js"></script>
<script src="https://cdn.firebase.com/libs/firebaseui/3.0.0/firebaseui.js"></script>