无法导入Firestore fieldValue(existsSync不是函数)

时间:2018-01-26 09:19:24

标签: reactjs firebase google-cloud-firestore create-react-app firebase-admin

我需要在我的反应应用中删除Firestore文档中的字段,Firebase documentation提到我应该使用' firebase-admin'中的FieldValue:

// Get the `FieldValue` object
var FieldValue = require("firebase-admin").firestore.FieldValue;

但是当我试图像这样获取FieldValue对象时,我收到一个错误:

  

TypeError: existsSync不是函数

     

./ node_modules / GRPC / node_modules /节点预GYP / LIB /预binding.js / exports.find

我在控制台中也看到了一些警告:

  

./ node_modules / GRPC / node_modules /节点预GYP / LIB / UTIL / versioning.js   16:20-67关键依赖:依赖的请求是一个   表达

     

./ node_modules /谷歌-GAX / node_modules / GRPC / node_modules /节点预GYP / LIB / UTIL / versioning.js   16:20-67关键依赖:依赖的请求是一个   表达

     

./ node_modules / GRPC / node_modules /节点预GYP / LIB /预binding.js   19:22-48关键依赖:依赖的请求是一个   表达

     

./ node_modules /谷歌-GAX / node_modules / GRPC / node_modules /节点预GYP / LIB /预binding.js   19:22-48关键依赖:依赖的请求是一个   表达

     

./ node_modules /谷歌-GAX / node_modules / GRPC / SRC / grpc_extension.js   30:14-35严重依赖:依赖的请求是一个   表达

这可能是什么问题?

1 个答案:

答案 0 :(得分:2)

firebase-admin节点模块用于服务器端节点进程。您正试图在客户端React应用程序中使用它,但这不起作用。

在客户端React中,您应该使用常规Firebase JavaScript / Web SDK并使用that tab in the docs中的代码段:

var cityRef = db.collection('cities').doc('BJ');

// Remove the 'capital' field from the document
var removeCapital = cityRef.update({
    capital: firebase.firestore.FieldValue.delete()
});