Firebase @ google-cloud / firestore软件包Typescript错误重复的标识符“ DocumentData”

时间:2018-06-20 11:34:26

标签: typescript firebase google-cloud-firestore google-cloud-functions

我正在使用使用Typescript的Firebase云功能,并且一切正常。在我的代码中,我创建了DocumentReferenceGeoPoint类型的变量之一,这就是make vs代码导入的变量

import { GeoPoint, DocumentReference } from '@google-cloud/firestore'

function offsetSlightly(location:GeoPoint) {
     //some code here
  return new GeoPoint(latitude, longitude)
}

所以我需要添加使用命令

添加的那个节点模块。

npm install @google-cloud/firestore

当我尝试部署时,每件事看起来都很好,我得到了很多重复的标识符,例如DocumentData,UpdateData,GeoPoint等。

错误:

node_modules/firebase-admin/node_modules/@google-cloud/firestore/types/firestore.d.ts:28:15 - error TS2300: Duplicate identifier 'DocumentData'.


28   export type DocumentData = {[field: string]: any};

那是我的package.json {

  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "main": "lib/index.js",
  "dependencies": {
    "@google-cloud/firestore": "^0.14.1",
    "firebase-admin": "^5.12.1",
    "firebase-functions": "^1.0.4",
    "nodemailer": "^4.6.4",
    "twilio": "^3.16.0"
  },
  "devDependencies": {
    "tslint": "^5.10.0",
    "typescript": "^2.9.2"
  },
  "private": true
}

我不知道问题所在,但我认为这在软件包中有些冲突。我是android开发人员,对Node有一点经验。有帮助吗?

3 个答案:

答案 0 :(得分:3)

与其从独立的Firestore SDK中导入类,不如在Firebase Admin SDK的Firestore上创建类型别名:

import * as admin from 'firebase-admin';

type GeoPoint = admin.firestore.GeoPoint
type DocumentReference = admin.firestore.DocumentReference

答案 1 :(得分:2)

您使用了错误的导入。

在云功能中,您可以使用admin SDK从Firestore获取数据。

这里是在集合中添加GeoPoint的示例 admin.firestore()。collection('mycollection')。add({location:new admin.firestore.GeoPoint(1.0,1.0)});

这是导入语句

从“ firebase-admin”以管理员身份导入*;

有关更多信息-https://firebase.google.com/docs/admin/setup

答案 2 :(得分:1)

我有同样的问题。在“功能/节点模块/ firebase-admin”中创建了一个单独的node_modules。我手动删除了它并解决了它。 我希望这可能是解决方案之一。