Как сохранить длинное значение в виде строки - PullRequest
0 голосов
/ 16 декабря 2018

Я хочу сохранить длинное значение в виде строки по разным причинам, поэтому я пытаюсь преобразовать serverValue.TIMESTAMP в строку, но не могу.Может кто-нибудь мне помочь?

Код, который я пробовал

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

Результат

"{.sv=timestamp}"

В базе данных хранится такое значение, и я понятия не имею, почему.Я просто не могу сохранить его как длинное значение, поэтому мне нужно преобразовать его в строку, потому что при получении все значения должны быть String из-за какой-то функции, которая у меня есть.Так может ли кто-нибудь помочь мне в преобразовании этого длинного в строковое значение?

1 Ответ

0 голосов
/ 16 декабря 2018

ServerValue.TIMESTAMP - это так называемый маркер, который вы отправляете на сервер базы данных.Затем сервер базы данных расширяет это до фактической отметки времени.Как вы можете видеть в своей строковой версии, маркер на самом деле является картой.

Нет способа указать базе данных хранить значение ServerValue.TIMESTAMP в виде строки.Возможны следующие варианты:

  1. Измените функцию, чтобы иметь дело с фактическим числовым значением.
  2. Сохраните временную метку на стороне клиента в виде строки из вашего приложения, указав setValue(String.valueOf(System.currentTimeMillis()))
  3. Написать облачную функцию, которая запускает временную метку на стороне сервера, а затем преобразует ее в строку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...