Angular Firebase认证报错排查:__rest函数未定义及跨域问题
问题:Angular Firebase Auth登录后触发__rest函数错误,无法获取用户元数据
配置与代码
- 已完成Google、Facebook、匿名登录的配置,核心代码如下:
导入模块:
注入AngularFireAuth实例:import { GoogleAuthProvider, FacebookAuthProvider, GithubAuthProvider, OAuthProvider } from 'firebase/auth' import { AngularFireAuth } from '@angular/fire/compat/auth'
Google登录方法:readonly angularFireAuth: AngularFireAuth = inject(AngularFireAuth)
匿名登录方法:loginWithGoogle(): Promise<ProviderUserCredential> { return this.angularFireAuth.signInWithPopup(new GoogleAuthProvider()) }this.angularFireAuth.signInAnonymously() - 使用的依赖版本:
"@angular/fire": "^16.0.0"
错误现象
- 打开Google登录弹窗后,控制台连续4次抛出跨域相关错误:
main.b498f38b5156900e.js:1 Cross-Origin-Opener-Policy policy would block the window.closed call. - 选择用户完成登录后,出现核心错误:
对应压缩后的出错代码片段:ERROR Error: Uncaught (in promise): TypeError: (0 , m.__rest) is not a function TypeError: (0 , m.__rest) is not a function at new oe (main.b498f38b5156900e.js:1:28842) at main.b498f38b5156900e.js:1:33125 at Generator.next (<anonymous>) at r (main.b498f38b5156900e.js:1:2177436) at ne (main.b498f38b5156900e.js:1:2177646) at main.b498f38b5156900e.js:1:2177710 at new t (polyfills.27a67f4029681117.js:1:18388) at main.b498f38b5156900e.js:1:2177585 at oe._fromIdTokenResponse (main.b498f38b5156900e.js:1:33212) at main.b498f38b5156900e.js:1:69515 at z (polyfills.27a67f4029681117.js:1:16000) at z (polyfills.27a67f4029681117.js:1:15550) at polyfills.27a67f4029681117.js:1:16832 at v.invokeTask (polyfills.27a67f4029681117.js:1:7203) at Object.onInvokeTask (main.b498f38b5156900e.js:1:1269912) at v.invokeTask (polyfills.27a67f4029681117.js:1:7124) at L.runTask (polyfills.27a67f4029681117.js:1:2583) at _ (polyfills.27a67f4029681117.js:1:9220)var {uid: M, auth: Y, stsTokenManager: we} = b , ct = (0, m.__rest)(b, ["uid", "auth", "stsTokenManager"]); - 执行匿名登录时,无需打开弹窗也会触发完全相同的
__rest函数错误 - 虽然Firebase控制台中已成功创建用户,但再次登录仍会报错,无法获取用户元数据(如authId、displayName等)
疑问
请问哪里操作有误?如何解决该错误以正常获取用户元数据?
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

