在 Angular 单元测试中使用 firestore.Timestamp.now()

Dau*_*eDK 6 firebase angularfire2 google-cloud-firestore

我正在开发一个带有 angularfire2 的 Angular 应用程序5.0.0-rc.10。我真的希望我不会混淆以下任何术语,但我们开始了。

我已将 Date's 转换为新的 firestore Timestamp 类型。这给我编写测试时带来了问题。我只能做到以下几点:

import { firestore } from 'firebase/app';
it ('should create', () => {
   firestore.Timestamp.now();
});
Run Code Online (Sandbox Code Playgroud)

如果我使用以下命令在 TestBed 模块中初始化 firebase:

AngularFireModule.initializeApp(environment.firebase),
Run Code Online (Sandbox Code Playgroud)

否则我得到错误:

TypeError: Cannot read property 'Timestamp' of undefined
Run Code Online (Sandbox Code Playgroud)

所以我的问题:

  1. 这是预期的行为吗?
  2. 你不应该能够在 firebase angular 项目之外创建一个 firstore Timestamp 数据类型吗?
  3. 为什么firestore undefined在没有 initializeApp 的情况下导入?

非常感谢你的帮助。

小智 1

我在下面解决了

角度版本是 11.1.2

import firebase from 'firebase/app';
import 'firebase/firestore';
import Timestamp = firebase.firestore.Timestamp;
Run Code Online (Sandbox Code Playgroud)