【问题标题】:Firebase firestore: how to create timestamp from seconds in Kotlin for AndroidFirebase firestore:如何在 Android 的 Kotlin 中以秒为单位创建时间戳
【发布时间】:2019-10-18 20:32:36
【问题描述】:

我正在尝试通过将秒数传递给它来创建一个 Firebase Firestore 时间戳对象,但它不起作用。

这是代码 sn-p。


import com.google.firebase.Timestamp
import com.google.firebase.firestore.*


var timeStampString:String = "1438910477"
var t = timeStampString.toLong()
var ts = Timestamp(t)

我收到错误:

None of the following functions can be called with the arguments supplied
<Init>(Parcel) defined in com.google.firebase.Timestamp
<Init>(Date) defined in com.google.firebase.Timestamp

我将数字作为documentation 中提到的参数传递。但它期待“包裹”或“日期”。

我做错了什么?

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

    从链接到的 API 文档中可以看出,构造函数需要两个数字参数,而不是一个。如果您在纳秒内没有要传递的组件,则传递 0:

    var timeStampString:String = "1438910477"
    var t = timeStampString.toLong()
    var ts = Timestamp(t, 0)
    

    但是,既然可以直接对数字进行编码,为什么还要将字符串解析为数字:

    var t = 1438910477
    var ts = Timestamp(t, 0)
    

    【讨论】:

    • 哦,我现在觉得好傻。感谢您指出。这是工作。我不知道为什么我觉得第二个参数必须是可选的。是的,数字部分的字符串在这里是多余的。只是在我的代码中,我得到了一个需要转换为数字的字符串。
    猜你喜欢
    • 2012-12-25
    • 1970-01-01
    • 2023-03-30
    • 2015-06-17
    • 2011-07-18
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2016-09-05
    相关资源
    最近更新 更多