Firebase 5.9.0的TypeScript编译错误

问题描述

我正在增强使用Firebase的Ionic-Angular 3.9.2 PWA应用程序。我正在尝试将Apple Signin作为功能添加到此应用程序中。我正在遵循此处记录的集成方法https://firebase.google.com/docs/auth/web/apple。 我的项目也使用AngularFire2。

为了支持Apple签名,我将Firebase Web SDK从4.8.0升级到了5.9.0,并将AngularFire2从5.0.0-rc.4升级到了5.0.0-rc.6。

尝试运行项目(使用离子服务)时,出现以下Typescript错误

typescript: src/providers/authenticata/authenticata.ts,line: 266
Expected 0 arguments,but got 1.

 L265:  return new Promise((resolve,reject) => {
 L266:    var provider = new firebase.auth.OAuthProvider("apple.com");

当我检查OAuthProvider的定义时,我确实看到它具有一个名为providerId的属性,该属性是必需的。

class OAuthProvider implements firebase.auth.AuthProvider { providerId: string; /** * @param {string} scope Provider OAuth scope to add. */ addScope(scope: string): firebase.auth.AuthProvider;

顺便说一句,我注意到如果忽略此错误,请在文件添加注释并保存以再次编译并重新加载应用程序,它可以正常工作而不会引发错误

在尝试进行构建以进行部署时,Angular AOT编译器再次引发了此问题。


[15:11:16] typescript: src/providers/authenticata/authenticata.ts,reject) => {
 L266:    var provider = new firebase.auth.OAuthProvider("apple.com");
Error: The Angular AoT build Failed. See the issues above.

这是我的package.json

{
  "name": "myapp","version": "0.0.1","author": "Ionic Framework","homepage": "http://ionicframework.com/","private": true,"scripts": {
    "clean": "ionic-app-scripts clean","build": "ionic-app-scripts build","lint": "ionic-app-scripts lint","ionic:build": "ionic-app-scripts build","ionic:serve": "ionic-app-scripts serve","pwa": "ionic-app-scripts build --prod --platform browser && gulp build-sw","browser": "ionic-app-scripts serve --sourceMap source-map --iscordovaserve --wwwDir platforms/browser/www/ --buildDir platforms/browser/www/build"
  },"dependencies": {
    "@agm/core": "1.0.0-beta.2","@angular/common": "5.0.3","@angular/compiler": "5.0.3","@angular/compiler-cli": "5.0.3","@angular/core": "5.0.3","@angular/forms": "5.0.3","@angular/http": "5.0.3","@angular/platform-browser": "5.0.3","@angular/platform-browser-dynamic": "5.0.3","@ionic-native/core": "4.4.0","@ionic-native/date-picker": "4.5.2","@ionic-native/firebase": "4.5.3","@ionic-native/splash-screen": "4.4.0","@ionic-native/status-bar": "4.20.0","@ionic/storage": "2.1.3","@types/intro.js": "2.4.5","@types/moment": "2.13.0","@types/underscore": "1.8.7","angularfire2": "^5.0.0-rc.6","clipboard": "2.0.1","cordova-ios": "5.0.0","device": "0.3.9","es6-promise-plugin": "4.2.2","firebase": "^5.9.0","ics": "2.13.1","ics-js": "0.10.2","immutable-ics": "0.4.0","ionic-angular": "3.9.9","ionic-img-viewer": "2.9.0","ionic-plugin-deeplinks": "1.0.20","ionic-plugin-keyboard": "2.2.1","ionic2-auto-complete": "1.6.2-alpha","ionicons": "3.0.0","moment": "2.20.1","ng-lottie": "0.3.2","node-sass": "4.6.0","promise-polyfill": "7.0.2","rxjs": "5.5.2","underscore": "1.8.3","workBox-sw": "3.1.0","ws": "3.3.2","xcode": "2.0.0","zone.js": "0.8.18"
  },"devDependencies": {
    "@ionic/app-scripts": "3.2.3","@types/googlemaps": "3.36.5","typescript": "2.4.2","workBox-build": "4.3.1"
  },"description": "An Ionic project","config": {
    "ionic_copy": "./config/copy.config.js"
  },"cordova": {
    "plugins": {
      "cordova-plugin-datepicker": {},"cordova-plugin-device": {}
    },"platforms": [
      "browser"
    ]
  }
}

我的代码如下

import { AngularFireDatabase } from "angularfire2/database";
import * as firebase from "firebase/app";
..
..
async signInWithApple() {
return new Promise((resolve,reject) => {
var provider = new firebase.auth.OAuthProvider("apple.com");
firebase
.auth()
.signInWithPopup(provider)
.then((result) => {
// I handle the firebase auth and other logic here
})
...

我的环境和CLI版本如下:

username$ ionic info

cli packages: (/Users/gofloaters/.nvm/versions/node/v8.13.0/lib/node_modules)

@ionic/cli-utils  : 1.9.2
ionic (Ionic CLI) : 3.9.2
global packages:

Cordova CLI : 8.1.2 (cordova-lib@8.1.1) 
local packages:

@ionic/app-scripts : 3.2.3
Cordova Platforms  : android 8.1.0 browser 6.0.0 ios 5.0.0
Ionic Framework    : ionic-angular 3.9.9
System:

Android SDK Tools : 26.1.1
ios-deploy        : 1.9.4 
Node              : v8.13.0
npm               : 6.4.1 
OS                : macOS
Xcode             : Xcode 11.2.1 Build version 11B500 

请帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)