gpt4 book ai didi

typescript - 修复 `firebase-admin` 和 `firebase` 包之间的类型不兼容

转载 作者:行者123 更新时间:2023-12-03 13:40:51 25 4
gpt4 key购买 nike

我正在编写旨在在客户端代码或云函数中操作 Firestore 数据的函数。

不幸的是,这似乎是 firebase 的 TypeScript 类型。 (用于客户端代码)和 firebase-admin (用于云功能)虽然几乎相同,但不兼容。除了导入和别名所有类型之外,有没有人有解决方案?

目前,我收到如下错误:
Type 'FirebaseFirestore.DocumentReference' is not assignable to type 'firebase.firestore.DocumentReference'

这是因为我在我的客户端代码库中使用 firebase 定义我的接口(interface)。 ,但随后尝试使用 firebase-admin 初始化一个实例并在我的函数代码库中使用它.但是如果我交换它们会发生同样的错误。

不幸的是,看起来 Node Admin SDK TypeScript 定义不是客户端 TypeScript 定义的超集,即使从界面角度来看它们似乎也是如此。

最佳答案

您可以创建自己的接口(interface)来复制客户端和服务器 SDK 的公共(public)元素,并围绕它们的实现实现一个包装器以根据需要进行切换。包装器将简单地委托(delegate)给预期的目的地,并可能根据需要转换任何标记值,例如 FieldValue.serverTimestamp() 返回的值。

换句话说,没有简单的解决方案。这就像在多个实现上创建任何抽象一样,除了 API 通常不需要任何翻译。

关于typescript - 修复 `firebase-admin` 和 `firebase` 包之间的类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55578927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com