我最近在今年TypeScript
的会谈后将我的云功能更新为FirebaseSummit
。
我的所有代码看起来都很酷,但我在尝试恢复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而没有任何内容,但它无效。有人知道实现这一点的正确依赖吗?
非常感谢
答案 0 :(得分:3)
我终于明白了! firebase-admin
模块只是一个简单的包装器,可以为您初始化Firestore。要获得真正的Firestore,请将"@google-cloud/firestore": "^0.9.0"
添加到package.json
。你可以在这里欣赏那些美丽的类型:https://github.com/googleapis/nodejs-firestore/blob/master/types/firestore.d.ts。