【问题标题】:How to store long value as string如何将长值存储为字符串
【发布时间】:2018-12-16 14:47:29
【问题描述】:

出于各种原因,我想将一个长值存储为字符串,所以我试图将 serverValue.TIMESTAMP 转换为字符串但不能。有人可以帮帮我吗?

我尝试过的代码

mDatabaseReference.child("Chats").child(MessageSenderId).child(MessageRecieverId)
    .child("Seen").setValue(String.valueOf(ServerValue.TIMESTAMP));

结果

"{.sv=timestamp}"

数据库正在存储这样的值,我不知道为什么。我只是不能将它存储为长值,因此我需要将其转换为字符串,因为由于我拥有的某些功能,在接收所有值时应该是字符串。那么有人可以帮我将这个 long 转换为字符串值吗?

【问题讨论】:

  • TIMESTAMP 的类型为 Map<String, String>。时间不长。
  • 但是没有 string.valueOf 它将它存储为一个长值@TheWanderer

标签: android firebase firebase-realtime-database


【解决方案1】:

ServerValue.TIMESTAMP 是您发送到数据库服务器的所谓标记。然后数据库服务器将其扩展为实际的时间戳。正如您在字符串版本中看到的那样,标记实际上是一张地图。

无法指示数据库将ServerValue.TIMESTAMP 值存储为字符串。您的选择是:

  1. 修改功能以处理实际数值。
  2. 将客户端时间戳存储为应用程序中的字符串,使用setValue(String.valueOf(System.currentTimeMillis()))
  3. 编写一个在服务器端时间戳上触发的云函数,然后将其转换为字符串。

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 2015-06-19
    • 2011-09-23
    • 2021-09-19
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多