如何在firebase中获得firebase时间

Posted

技术标签:

【中文标题】如何在firebase中获得firebase时间【英文标题】:how to get firebase time in firebase 【发布时间】:2020-06-04 15:42:21 【问题描述】:

我的应用程序 firebase(服务器)需要毫秒时间。因为我的当地时间将被移动日期时间设置改变,

我会看到这个问题不太有帮助, Flutter Firestore Server side Timestamp

var timestamp=FieldValue.serverTimestamp();

print("timestamp"+timestamp.toString());

但它们的打印值低于值

====>Instance of 'FieldValue'

【问题讨论】:

【参考方案1】:

在读取时间戳之前,您必须将其设置到服务器,因为您是从那里生成的。根据this

serverTimestamp() 返回与 set() 或 update() 一起使用的标记,以在写入的数据中包含服务器生成的时间戳。

所以先设置一下

Firestore.instance.collection('timestamp').document('docId').setData('time' : FieldValue.serverTimestamp());

然后使用基本的 Firestore 查询获取它。最后,查看this的回答了解详情。

获取时间戳的更通用方法

    getTimestamp() async 
      await Firestore.instance.collection('timestamp').document('docId').setData('time' : FieldValue.serverTimestamp());
      DocumentSnapshot doc = await Firestore.instance.collection('timestamp').document('docId').get();
      Timestamp timestamp = doc['time'];
      var timestampInMilliSeconds = timestamp.millisecondsSinceEpoch;
      return timestampInMilliSeconds;
      /* here you can call setState to your own variable before returning and keep in mind this method is async so it will return a Future.  */
    

【讨论】:

我已经在使用它,但这是根据我的移动(设备)时间设置的。不是服务器。 好的,那你为什么不使用 FiledValue.serverTimestamp() 并立即从 firestore 中获取数据 是的,我也用这个,请再看一次我的问题,我编辑了 .setData('time' : FieldValue.serverTimestamp());不导入,你能直接定义吗,我将如何在单独的变量中获取时间戳。 var timeStamp="你的代码"; 好的,检查更新的答案,运行它,让我知道它是否适合你【参考方案2】:

你应该使用

timestamp() 
    Firestore.instance.collection('timestamp').document('time').setData(
      "timestamp": FieldValue.serverTimestamp(),
    );
  

【讨论】:

但我需要在单独的变量中。像这样 var timestamp=FieldValue.serverTimestamp(); 首先不要使用 var,因为它会降低可读性。如果您需要变量中的时间戳,您可以将其分配给外部设置数据对象,如下所示:timestamp = FieldValue.serverTimestamp();然后执行您想要执行的任何操作并分配给firestore的时间戳变量,例如“时间戳”:时​​间戳,

以上是关于如何在firebase中获得firebase时间的主要内容,如果未能解决你的问题,请参考以下文章

Flutter & Firebase - FirebaseFirestoreException:如果我按照以下方式制定了 Firebase 规则,如何获得使用 Firestore 中所有数据的

Firebase + Android - 通知 ChildAdded - 如何只获得新的孩子?

如何在 Firebase 网络通知中获得“fcm_options.link”功能

iOS 上的 Firebase 邀请 - 如何从通用链接获得邀请?

如何获得 Firebase 节点的随机子节点?

如何将数据作为子集合添加到firebase颤振中的所有用户文档?