Google登录认证按钮不工作,Firebase



我是一名电气工程专业的学生,必须为我的高级设计项目编写数据库代码。我正在写一个小网站来访问这个数据库来演示它。在网站上,我有一个谷歌登录按钮上的javascript网站(https://smartamberalert.web.app/)是不工作。我点击按钮,什么也没发生。

这是我的javascript代码:

document.addEventListener("DOMContentLoaded", event =>{
const app = firebase.app();

const db = firebase.firestore();

const testPost = db.collection('posts').doc();

testPost.get().then(doc =>{
const data = doc.data();
document.write( data.title + '<br>')
document.write( data.createdAt)
})
//console.log(app)});
function googleLogin() { const provider = new  firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider)
.then(result =>{
const user = result.user;
document.write('Hello ${user.displayName}');
console.log(user)
})
.catch(console.log)}

这是googleLogin功能,我的问题应该在。

下面是我的html代码:

Welcome to Firebase Hosting
<!DOCTYPE html>
<!-- update the version number as needed -->
<script defer src="/__/firebase/9.17.2/firebase-app-compat.js"></script>
<!-- include only the Firebase features as you need -->
<script defer src="/__/firebase/9.17.2/firebase-auth-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-database-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-firestore-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-functions-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-messaging-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-storage-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-analytics-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-remote-config-compat.js"></script>
<script defer src="/__/firebase/9.17.2/firebase-performance-compat.js"></script>
<!-- 
initialize the SDK after all desired features are loaded, set useEmulator to false
to avoid connecting the SDK to running emulators.
-->

</script src = app.js>
<button onclick ="googleLogin()">
Login in with google
</button>

我是按照教程(https://www.youtube.com/watch?v=9kRgVxULbag&list=PLg3EctrW99v2bRSrkALXrTWFH_fva1xvv&index=34&t=325s&ab_channel=Fireship) firebase和工作,以获得谷歌身份验证功能的工作。该按钮将显示在网站上,但不执行任何点击时。当我点击

时,我期待在弹出窗口中出现常规的谷歌标志。

如果单击按钮后检查浏览器的JavaScript控制台,它显示:

Uncaught ReferenceError: googleLogin is not defined

这给了一个很好的起点,找出哪里出了问题,代码找不到googleLogin

快速扫描,这可能是因为您在中声明了函数addEventListener回调。您需要将其声明为顶级函数:

document.addEventListener("DOMContentLoaded", event => {
const app = firebase.app();
const db = firebase.firestore();
const testPost = db.collection('posts').doc();
testPost.get().then(doc => {
const data = doc.data();
document.write(data.title + '<br>')
document.write(data.createdAt)
})
}); // 👈
function googleLogin() {
const provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider)
.then(result => {
const user = result.user;
document.write('Hello ${user.displayName}');
console.log(user)
})
.catch(console.log);
}); // 👈

最新更新