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:错误(此环境中不支持身份验证/操作)
我读了很多文档和博客,不幸的是没有解决这个问题。 许多文档都是基于反应的。但我不使用反应。那有什么解决办法吗? 问候
您是否按照 https://firebase.google.com/docs/auth/web/google-signin
中的步骤进行操作开始之前 将 Firebase 添加到您的 JavaScript 项目。 在 Firebase 控制台中启用 Google 作为登录方法: 在 Firebase 控制台中,打开“身份验证”部分。 在登录方法选项卡上,启用 Google 登录方法并单击保存。
如果您在 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,
});
}