为什么 Firebase 身份验证适用于 Chrome 而不适用于 Firefox?

skw*_*wny 5 firefox firebase firebase-authentication

FirebaseonAuthStateChanged()在 Chrome 中返回用户凭据,但在 Firefox 中不返回:

在此处输入图片说明

可能的原因是什么?

更新:这是重现问题所需的最少代码:

var firebase = require("firebase/app"),
  C = require("./constants.js");
require("firebase/auth");

firebase.initializeApp(C.FIREBASE_CONFIG);

firebase.auth().onAuthStateChanged(function(user) { 
    console.log('user is ' + user);
})
Run Code Online (Sandbox Code Playgroud)

我的应用程序中有更多代码,但在剥离所有内容后,这是唯一运行的代码,但问题仍然存在:

在此处输入图片说明

Wit*_*tek 7

也许您已经在 Firefox 中启用了增强跟踪保护。

需要在站点或全局禁用它才能使 Firebase 身份验证正常工作。如果启用了增强跟踪保护,即使您已成功通过身份验证,也会onAuthStateChanged使用 进行调用。null

请参阅 Firefox 文档进行配置:https://support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-desktop

  • 解决方案是使用“signInWithPopup”而不是“signInWithRedirect”! (5认同)