Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud firestore 如何使用Google Cloud函数在本机模式下向Firestore添加时间戳onCreate_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Google cloud firestore 如何使用Google Cloud函数在本机模式下向Firestore添加时间戳onCreate

Google cloud firestore 如何使用Google Cloud函数在本机模式下向Firestore添加时间戳onCreate,google-cloud-firestore,google-cloud-functions,Google Cloud Firestore,Google Cloud Functions,该项目是通过常规的谷歌控制台创建的。不是火基的 我已将下面的代码输入到云控制台,并与firestore数据库的onCreate事件关联。当我在指定路径插入文档时,会正确触发该事件。但是,该功能总是在以下情况下失败: TypeError:无法在导出时读取未定义的属性“ref”。helloFirestore 文档已创建,但没有“createdAt”字段 我错过了什么 作用 } 下面是它在控制台中的外观。 您应该使用Firebase CLI部署响应来自Firebase产品的事件的代码。您的节点项目将需

该项目是通过常规的谷歌控制台创建的。不是火基的

我已将下面的代码输入到云控制台,并与firestore数据库的onCreate事件关联。当我在指定路径插入文档时,会正确触发该事件。但是,该功能总是在以下情况下失败:

TypeError:无法在导出时读取未定义的属性“ref”。helloFirestore

文档已创建,但没有“createdAt”字段

我错过了什么

作用

}

下面是它在控制台中的外观。

您应该使用Firebase CLI部署响应来自Firebase产品的事件的代码。您的节点项目将需要安装firebase functions模块,并且您将需要使用该模块来构建整个过程中显示的触发器。部署后,您可能可以在控制台中修改函数,但Firebase CLI是唯一受支持的为Firebase产品编写函数的方式。

您能否共享您的整个云函数代码(即full index.js),因为不清楚如何使用“当我在指定的路径插入文档时,事件被正确触发。”。哪个路径?通常您会执行类似
exports.createUser=functions.firestore.document('users/{userId}')。onCreate((snap,context)=>{})
的操作以查看
users/{userId}
path。这是整个CAN功能。我没有使用CLI部署它,而是使用了云功能控制台。控制台允许您分配触发器、要侦听的事件和要调用的函数。(参见图)。代码中的注释是在我选择触发器、事件类型和运行时时由控制台插入的。我的假设是,您不需要
函数。firestore.document…
。也许您不能使用云控制台回写数据?好的,谢谢。但该项目不是作为Firebase项目创建的,这有关系吗。我通过谷歌控制台做了所有的事情。我选择在原生模式下使用Firestore作为数据库,仅此而已。(我已经更新了标题以使其更加清晰。)您可能必须使用Firebase控制台至少为您的项目激活Firestore。Firestore工作正常,我从未为此项目接触过Firebase控制台。好的,我明白了,Google云函数与Firebase的云函数不同。我设置了一个常规的云函数,尽管它可以通过更改Firestore数据库接收的负载似乎与Firebase云函数接收的负载不同。我将尝试创建Firebase云函数,但由于此项目不是Firebase项目,我不知道它是否有效。我会报告。答案是“否”,您不能
exports.helloFirestore = (snap, context) => {
return snap.ref.set(
  {
    createdAt: admin.firestore.FieldValue.serverTimestamp()
  },
  { merge: true }
)
.catch(error => {
   console.log(error);
   return false;
});