更优化的方式,而不是 import * as firebase from 'firebase'

More Optimized way instead of import * as firebase from 'firebase'

import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore } from '@angular/fire/firestore';
constructor(
    private afAuth: AngularFireAuth,
    private afs: AngularFirestore,) {

  }

用例 1:

createdDate: firebase.firestore.FieldValue.serverTimestamp(),

用例 2:

 const result: firebase.auth.UserCredential = await this.afAuth.auth.signInWithCredential(credential);

以上我需要导入这个:

import * as firebase from 'firebase';

由于 firebase 是一个非常大的 JS 库,我想以更优化的方式进行。你能告诉我怎么做吗?

注:这里我用的是AngularFire。但是我怎样才能得到这些模型呢? firebase.auth.UserCredential

如果您想要干净的导入和优化的导入,我建议使用 angular 和 firebase 的官方库:AngularFire 有据可查并且是最新的。

在接口内部或class,你可以使用大概:

import * as firebase from 'firebase/app';

并继续在您的代码中使用:firebase.auth.UserCredential

我建议查看 Angularfire 和 firebase 的文档。

您可以从 firebase/app 导入内容并访问每个对象。

import { Component } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { auth } from 'firebase/app';


 const result: auth.UserCredential = await this.afAuth.auth.signInWithCredential(credential);

https://github.com/angular/angularfire/blob/master/docs/auth/getting-started.md