将 Firestore 依赖项和类型导入 node.js
Posted
技术标签:
【中文标题】将 Firestore 依赖项和类型导入 node.js【英文标题】:Import Firestore dependencies and types to node.js 【发布时间】:2018-04-15 03:41:01 【问题描述】:在今年的 FirebaseSummit 会谈之后,我最近将我的云函数更新为 TypeScript。
我所有的代码看起来都很酷,但是我在尝试恢复 Firestore API 的类型时遇到了一些问题,例如 QuerySnapshot
、 DocumentReference
...
async function getEventsMadeByUser(userId: string): Promise<FirebaseFirestore.DocumentSnapshot[]>
const eventsMadeByUserQuery = await instance.collection('PrivateUserData')
.doc(userId).collection(EVENTS)
.where('interactionUser', '==', userId).get();
return eventsMadeByUserQuery.docs;
现在我的 IDE (WebStorm) 没有得到 FirebaseFirestore
的类型。这就是我的package.json
的样子:
"name": "functions",
"description": "Cloud Functions for Firebase",
"dependencies":
"firebase-admin": "^5.4.3",
"firebase-functions": "^0.7.2"
,
"devDependencies":
"@types/express": "^4.0.37",
"typescript": "^2.3.2"
,
"scripts":
"build": "tsc",
"watch": "tsc --watch",
"deploy": "tsc && firebase deploy --only functions"
,
"main": "build/index.js",
"private": true
我已经尝试添加@firebase-firestore,但什么也没有,它不起作用。实现这一目标的正确依赖是什么?
【问题讨论】:
这不是 Firebase Firestore。这也是3年前的东西。 Firestore 是一个月前发布的。 你的导入语句是什么样的? 【参考方案1】:我终于明白了! firebase-admin
模块只是一个简单的包装器,它为您初始化 Firestore。要获得真正的 Firestore,请将 "@google-cloud/firestore": "^0.9.0"
添加到您的 package.json
。你可以在这里欣赏那些漂亮的类型:https://github.com/googleapis/nodejs-firestore/blob/master/types/firestore.d.ts。
【讨论】:
使用import Firestore from "@google-cloud/firestore";
获取类型定义。【参考方案2】:
import DocumentData from '@firebase/firestore-types'
【讨论】:
以上是关于将 Firestore 依赖项和类型导入 node.js的主要内容,如果未能解决你的问题,请参考以下文章
是否可以从firebase云函数node.js更新firestore中的map类型字段?