【问题标题】:Facing issue while using GoogleAuthProvider() method使用 GoogleAuthProvider() 方法时面临的问题
【发布时间】:2021-11-21 22:04:18
【问题描述】:

如何在 Angular 应用中使用GoogleAuthProvider() 方法在登录方法中进行身份验证?

     Angular version: ^12.2.7 
    "@angular/fire": "^7.0.4", 
    "firebase": "^9.1.0",
import { Injectable } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/compat/auth';
// import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore } from '@angular/fire/compat/firestore';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable, of } from 'rxjs';
import { switchMap } from 'rxjs/operators';
import { AppUser } from '../models/appuser';
import * as firebase from 'firebase/compat/app';
import { GoogleAuthProvider } from "firebase/auth";

我在以下位置遇到错误:

firebase.GoogleAuthProvider(). async login() { const returnUrl = this.route.snapshot.queryParamMap.get('returnUrl') || this.router.url; 
localStorage.setItem('returnUrl', returnUrl); 
const credential = await this.afAuth.signInWithPopup(new firebase.GoogleAuthProvider()); 
return this.updateUserData(credential.user); }

【问题讨论】:

    标签: javascript angular firebase google-cloud-firestore


    【解决方案1】:

    您可以尝试像这样导入 GoogleAuthProvider:

    import { GoogleAuthProvider } from "firebase/auth"
    
    // ...signInWithPopUp(new GoogleAuthProvider())
    

    如果您想使用 firebase.auth 命名空间,那么您可能必须将 Firebase 降级到 "8.X.X" 或使用兼容版本进行导入:

    // Add compat if using V9
    
    import firebase from "firebase/compat/app"; 
    import "firebase/compat/auth" 
    

    【讨论】:

    • 你能纠正我这个方法有什么问题吗?我在 firebase.GoogleAuthProvider() 处遇到错误。异步登录() { 常量 returnUrl = this.route.snapshot.queryParamMap.get('returnUrl') ||这个.router.url; localStorage.setItem('returnUrl', returnUrl); const credential = await this.afAuth.signInWithPopup(new firebase.GoogleAuthProvider());返回 this.updateUserData(credential.user); }
    • 我的导入对于 V9 是正确的。
    • @YogeshNikam 也请分享您的导入。
    • 从'@angular/core'导入{可注入};从'@angular/fire/compat/auth'导入{ AngularFireAuth}; // 从 '@angular/fire/auth' 导入 { AngularFireAuth };从“@angular/fire/compat/firestore”导入 { AngularFirestore };从'@angular/router'导入{ActivatedRoute,路由器};从 'rxjs' 导入 { Observable, of };从 'rxjs/operators' 导入 { switchMap };从“../models/appuser”导入 { AppUser };从 'firebase/compat/app' 导入 * 作为 firebase;从“firebase/auth”导入 { GoogleAuthProvider };
    • @YogeshNikam 如果您按照我的回答从模块化 SDK 导入,则不需要 firebase.auth.
    猜你喜欢
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 2012-09-09
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    相关资源
    最近更新 更多