【问题标题】:Web Google authentication with firebase使用 Firebase 进行 Web Google 身份验证
【发布时间】:2017-06-21 16:16:09
【问题描述】:

未捕获的异常:错误:此操作在 此应用程序运行的环境。 “location.protocol”必须 必须是 http、https 或 chrome 扩展,并且必须启用网络存储。

var config = {
apiKey: "*****",
authDomain: "******",
};
firebase.initializeApp(config);
var provider = new firebase.auth.GoogleAuthProvider();
provider.addScope('profile');
provider.addScope('https://www.googleapis.com/auth/drive');
firebase.auth().signInWithRedirect(provider);
alert(1);
}

【问题讨论】:

  • 看起来像 http 的问题,驱动 sdk 要求您的 authdomain 为 https://
  • 您的实际问题是什么?
  • 该代码仅在本地主机上运行。是否可以在没有任何网络浏览器的情况下运行该代码
  • 其他文档建议运行 firebase serve -- 但我不确定默认端口是什么。

标签: javascript firebase google-drive-api firebase-authentication adobe-indesign


【解决方案1】:

未捕获的异常:错误:此操作在 此应用程序运行的环境。 “location.protocol”必须 是 HTTP、HTTPS 或 chrome 扩展,并且必须启用网络存储。

最近我也遇到了同样的错误。

您直接在浏览器中打开此文件,无需任何网络服务器。如果您直接打开文件,Firebase 身份验证将不起作用。尝试通过 Web 服务器加载您的 HTML,它应该可以解决您的问题。 此错误背后的原因是当您使用身份验证服务时,它们将使用 Web 存储。当您在没有任何网络浏览器的情况下直接打开 HTML 文件时,网络存储不起作用

比如使用apache,在浏览器中像http://localhost/filename.html这样通过apache打开

【讨论】:

  • 感谢您的回复。是的,这是真的。我在 adobe cep 扩展中使用该代码,它没有任何网络浏览器。那么是否可以在没有 Web 服务器或 Web 浏览器的情况下运行该代码
  • 抱歉不知道。@ArunKarthick
  • 用nodejs可以吗
  • 是的,有可能。只需创建 expressjs 服务器并在那里添加您的文件
  • 我是节点新手。你能用express js举个例子吗?
【解决方案2】:

试试这个代码。它应该可以工作。

    var config = {
    apiKey: "*****",
    authDomain: "******",
    };
    firebase.initializeApp(config);
    var provider = new firebase.auth.GoogleAuthProvider();
    provider.addScope('profile');
    provider.addScope('https://www.googleapis.com/auth/drive');
    firebase.auth().signInWithRedirect(provider);
    //add the code below to your previous lines
    firebase.auth().getRedirectResult().then(function(authData) {
        console.log(authData);
    }).catch(function(error) {
        console.log(error);
    });

【讨论】:

  • 感谢您的回复。抱歉,代码没有解决我的问题
  • 这不是解决方案。在 iOS 中,Google 的 Firebase 身份验证问题仍然存在
【解决方案3】:

最简单的方法.... 只需将您的文件上传到 github 并使用 github 页面运行(即https://urname.github.io/yr dir/yr html 文件。

【讨论】:

  • 这将依赖于将 Github 添加为授权域来访问您的 Firebase 项目。反过来,这将允许任何 Github 托管的页面访问您的项目。
猜你喜欢
  • 1970-01-01
  • 2017-03-11
  • 2018-10-19
  • 2021-02-08
  • 2022-01-12
  • 2021-04-14
  • 2019-10-30
  • 1970-01-01
  • 2023-02-14
相关资源
最近更新 更多