在ElectronJS上使用Google测试Firebase身份验证后出现错误。
即使我没有对代码进行任何重大更改以至于影响到Google身份验证部分,身份验证也曾经可以使用。
当我在浏览器中运行项目时,身份验证仍然可以正常工作(npm run serve)。在电子书中,我可以看到
TypeError: Cannot create property 'href' on string 'about:blank' when clicking on the Google authentication button.
TypeError: Cannot create property 'href' on string 'about:blank'
我在点击时执行的代码-
googleLogin() {
fb.auth
.signInWithPopup(fb.googleProvider)
.then(credential => {
this.$store.commit("setCurrentUser", credential.user)
fb.usersCollection.doc(credential.user.uid).set({
}).then(() => {
this.$store.dispatch("fetchUserProfile")
this.updateGmailData()
this.$router.push("/dashboard")
}).catch(err => {
console.log(err)
})
}).catch(err => {
console.log(err);
});
},
再次单击该按钮,我可以看到另一个typeError-
TypeError: Cannot create property 'href' on string ''
为什么身份验证在浏览器上有效,但在Electron中不起作用? 此问题的原因是什么?
答案 0 :(得分:1)
看到此问题https://github.com/firebase/firebase-js-sdk/issues/1334。
Firebase Auth并不正式支持电子。由于Electron是浏览器和Node.js服务器环境的组合,因此某些功能可能无法按预期运行,例如signInWithPopup。
但是@diggabyte(对他很感激)似乎找到了一种解决方法:
我能够通过signInWithRedirect + getRedirectResult使它工作 https://github.com/firebase/firebase-js-sdk/issues/1334#issuecomment-434094783