Firebase:错误(此环境中不支持身份验证/操作)

问题描述 投票:0回答:2

JS文件配置是

import {initializeApp} from 'firebase/app';
import {getAuth, signInWithPopup, GoogleAuthProvider } from "firebase/auth";

const firebaseConfig = {
    apiKey: "",
    authDomain: "",
    databaseURL: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: "",
    appId: ""
  };
initializeApp(firebaseConfig);

export async function postLogin  (req, res, next) {
    const provider = new GoogleAuthProvider();
    const auth = getAuth();   
    signInWithPopup(auth, provider)
     .then((res)=>{
      console.log(res);
     })
     .catch((err)=>console.log('ERROR : ' + err));
}

带有按钮的 pug 文件会触发“postLogin”功能。 结果是错误的 Firebase:错误(此环境中不支持身份验证/操作)

我读了很多文档和博客,不幸的是没有解决这个问题。 许多文档都是基于反应的。但我不使用反应。那有什么解决办法吗? 问候

node.js firebase google-oauth pug
2个回答
0
投票

您是否按照 https://firebase.google.com/docs/auth/web/google-signin

中的步骤进行操作

开始之前 将 Firebase 添加到您的 JavaScript 项目。 在 Firebase 控制台中启用 Google 作为登录方法: 在 Firebase 控制台中,打开“身份验证”部分。 在登录方法选项卡上,启用 Google 登录方法并单击保存。


0
投票

如果您在 iPad(iOS) 中遇到此问题,那么是因为 navigator.userAgent。 firebase 检查

navigator.userAgent.toLowerCase().match(/iphone|ipad|ipod|android/);
并且 iPad 最新版本具有这种值“Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148”,因此它给出此错误。 简单的解决方法是:

if (navigator.userAgent.includes('Macintosh') && 'ontouchend' in document) {
      Object.defineProperty(navigator, 'userAgent', {
        value: navigator.userAgent.replace('Macintosh', 'iPad'),
        configurable: true,
      });
    }
© www.soinside.com 2019 - 2024. All rights reserved.