将Firestore依赖项和类型导入node.js

时间:2017-11-02 14:54:42

标签: node.js typescript firebase google-cloud-functions google-cloud-firestore

我最近在今年TypeScript的会谈后将我的云功能更新为FirebaseSummit

我的所有代码看起来都很酷,但我在尝试恢复Firestore API的类型方面遇到了一些问题,例如QuerySnapshotDocumentReference ......

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而没有任何内容,但它无效。有人知道实现这一点的正确依赖吗?

非常感谢

1 个答案:

答案 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