Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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
Javascript Firebase:创建文档时存储服务器时间戳_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript Firebase:创建文档时存储服务器时间戳

Javascript Firebase:创建文档时存储服务器时间戳,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,当我使用此代码时: firestore().collection("item").add({...item, created: firebase.database.ServerValue.TIMESTAMP}) 它创建条目{.sv:“timestamp”}看起来您正在Firestore中创建一个文档,但试图从实时数据库中获取时间戳,这是一个不同的Firebase产品 以下是如何使用Firestore的时间戳(于2019年2月更新): 在撰写本文时,公认的解决方案不起作用。表达式firebase

当我使用此代码时:

firestore().collection("item").add({...item, created: firebase.database.ServerValue.TIMESTAMP})

它创建条目
{.sv:“timestamp”}
看起来您正在Firestore中创建一个文档,但试图从实时数据库中获取时间戳,这是一个不同的Firebase产品

以下是如何使用Firestore的时间戳(于2019年2月更新):


在撰写本文时,公认的解决方案不起作用。表达式
firebase.firestore.FieldValue.serverTimestamp()
不再有效。
时间戳现在直接位于
firestore

因此,要以秒为单位获取当前服务器时间,可以编写

require('firebase-admin').firestore.Timestamp.now()._seconds

该解决方案对我有效(2020年3月):

云Firestore中的结果是:


要导入此文件,您必须在pubspec.yaml中输入什么内容?@Tyler我猜您使用的是flatter。添加插件应该足够了。是的,我在顶部有这个:import'package:cloud_firestore/cloud_firestore.dart';但是仍然得到错误:错误:getter'firebase'没有定义……这听起来像是另一个问题。事实上,您的答案是指NodeJS管理SDK。接受的答案使用Javascript客户端SDK@Ros费尔南德斯,谢谢。但使用FieldValue中的时间戳是Google在firestore帮助中为NodeJ提供的建议,不再有效。目前,我必须像您所说的那样制作一个云函数,向客户端请求服务器时间,然后使用该时间从客户端写回服务器。我认为这只是根据您的计算机时间创建一个时间戳,不是基于Firebase server认为的时间。@BorisYakubchik您得到解决方案了吗,这里显示的解决方案需要设备时间
require('firebase-admin').firestore.Timestamp.now()._seconds
Firestore.instance.collection("item").add({...other items, 'created': FieldValue.serverTimestamp()});