npm 包 typesafe-firestore 使用教程

阅读时长 7 分钟读完

简介

typesafe-firestore 是一个适用于 TypeScript 的 Firebase Cloud Firestore ORM 库。它提供了一种类型安全的方式来处理云 Firestore 数据库中的文档和集合。

该库的主要特点如下:

  • typesafe-firestore 使用类来描述文档和集合,方便进行 CRUD 操作。
  • typesafe-firestore 提供了实时监听功能,可以在文档或集合变化时触发回调。
  • typesafe-firestore 使用 TypeScript 泛型,使得代码具有更高的类型安全性。

安装

你可以使用 npm 或 yarn 来安装 typesafe-firestore。下面是安装命令示例:

示例代码

下面是一个极简的示例,用于演示如何使用 typesafe-firestore:

-- -------------------- ---- -------
------ - -- ----- ---- -----------------
------ - -------------------- --------------------- - ---- ---------------------

-- --- --------
----------------------

-- -----
----- ---- -
  ----- -------
  ---- -------
-

-- -----
----- ------------ - -------------------------------------- -------- ------

-- -----
----- --------------- - ---------------------------------------- --------------

-- ------
----- -------- - --- ------------------

-- ----
----- ---- - - ----- ----- ---- -- --
----- -------------------

-- ------
----- ----- - ----- ------------------
------------------- -- -- ----- ----- ---- -- --

在上面的示例中,我们定义了一个 User 类,用于描述 users 集合中的文档。我们使用 createDocumentClass 函数来创建一个 UserDocument 类,用于描述一个用户文档的操作。接着,我们使用 createCollectionClass 函数来创建一个 UsersCollection 类,用于描述一个用户集合的操作。最后,我们实例化了 UsersCollection 类,并使用其中的 addgetAll 方法来向集合中添加文档,以及获取全部文档。

指南

使用文档类

typesafe-firestore 中的文档类用于描述一个文档的操作。它由一个普通的 TypeScript 类及若干个装饰器组成。

@Collection(name: string) 装饰器用于描述所属集合的名称。例如,如果一个文档类带有 @Collection('users') 装饰器,则表示该文档属于 users 集合。

@DocumentId() 装饰器用于指定文档 ID 的类型。接收一个可选的参数 converter,用于指定 ID 的转换器。例如,@DocumentId(firestore.FieldValue.serverTimestamp) 表示 ID 采用服务器时间戳,并使用 Firestore 的 serverTimestamp 函数来生成。

@Field(name: string) 装饰器用于描述一个文档字段。接收一个可选的参数 converter,用于指定字段的转换器。例如,@Field('age', firestore.FieldValue.increment(1)) 表示 age 字段自增 1。

以下是一个文档类的示例:

-- -------------------- ---- -------
------ - --------- - ---- -----------------
------ - ----------- ----------- ----- - ---- ---------------------

--------------------
----- ---- -
  -------------
  ---- -------

  --------------
  ------ -------

  ------------- ----------------------------------
  ----- -------
-

在这个示例中,我们定义了一个 User 类,用于描述 users 集合中的文档。该文档具有一个自动生成的 ID,一个名为 name 的字符串字段,以及一个名为 age 的数字字段,采用自增方式进行修改。

使用集合类

typesafe-firestore 中的集合类用于描述一个集合的操作。它由一个普通的 TypeScript 类及一些静态方法组成。

静态方法 create<T>() 用于创建一个集合类。其中参数 T 为该集合中文档类的类型。例如,create<User>() 将创建一个针对 User 类型的集合类。

以下是一个集合类的示例:

-- -------------------- ---- -------
------ - -- ----- ---- -----------------
------ - ---------------- - ---- ---------------------

-- -----
----- ---- -
  ----- -------
  ---- -------
-

-- -----
----- ------------ - -------------------------------------- -------- ------

-- -----
----- --------------- - ----------------------------------------- --------------

-- ------
----- -------- - --- ------------------

在这个示例中,我们定义了一个 User 类,用于描述 users 集合中的文档。然后,我们使用 createDocumentClass 函数创建了一个 UserDocument 类,并使用 createCollection 函数创建了一个针对该文档类的 UsersCollection 类。最后,我们实例化了 UsersCollection 类,并使用其实例 usersRef 来对集合进行操作。

使用实时监听

typesafe-firestore 提供了实时监听功能,可以在文档或集合变化时触发回调。

以下是一个实时监听的示例:

-- -------------------- ---- -------
------ - -- ----- ---- -----------------
------ - -------------------- --------------------- - ---- ---------------------

-- --- --------
----------------------

-- -----
----- ---- -
  ----- -------
  ---- -------
-

-- -----
----- ------------ - -------------------------------------- -------- ------

-- -----
----- --------------- - ---------------------------------------- --------------

-- ------
----- -------- - --- ------------------

-- --------
-------------------------------------- -- -
  ------------------------
---

-- --------
----------------------------------- -- -
  --------------------------- -- -
    ------------------------
  ---
---

在这个示例中,我们实例化了 UsersCollection 类,并使用其实例 usersRef 来实时监听文档和集合的变化。我们使用 onSnapshot 方法来监听一个文档或集合,并在其变化时触发回调函数。

总结

typesafe-firestore 是一个适用于 TypeScript 的 Firebase Cloud Firestore ORM 库,它提供了一种类型安全的方式来处理云 Firestore 数据库中的文档和集合。本文介绍了 typesafe-firestore 的安装与使用,包括文档类、集合类和实时监听的相关内容。通过学习本文,相信你已经能够熟练使用 typesafe-firestore 来为你的应用程序提供强大的 ORM 功能。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067355890c4f7277583bbb

纠错
反馈