2017-02-01 3 views
0

Я работаю над проектом Android, который подключается к базе данных firebase реального времени. Во всяком случае, я помещаю timeStamp где-то.Какое значение возвращается при вызове Firebase ServerValue.TIMESTAMP

... 
.... 
map2.put("time", ServerValue.TIMESTAMP); 
message_root.updateChildren(map2); 

Тогда я звоню эти данные успешно

... 
    ... 
    chat_time = (Long)((DataSnapshot)i.next()).getValue(); 
    Calendar calendar = Calendar.getInstance(); 
    int a = calendar.get(Calendar.HOUR_OF_DAY); 
    int b = calendar.get(Calendar.MINUTE); 
    int c = calendar.get(Calendar.SECOND); 

Никаких проблем в реализации. Проблема в том, что я не мог понять, что это значение отличается в смартфоне и эмуляторе. Для того же значения в эмуляторе оно показывает (например) 17:16, в смартфоне 20:16, хотя значение такое же в базе данных реального времени, когда я смотрю с консоли firebase. И, наконец, что такое реальное значение? Изменяется ли это значение в зависимости от страны? Но мой смартфон и эмулятор находятся в одной стране. Я запутался.

+0

Я заметил, что мое время симулятора показывает за 3 часа до этого. Тогда все кажется приятным, но как это происходит? В конце концов, он сохраняет одно значение в базе данных –

ответ

1

В соответствии с Firebase Reference Docs, то есть ServerValue.TIMESTAMP:

Значение заполнитель для авто-заполнения текущей метки времени (время с эпохи Unix, в миллисекундах) в базе данных Firebase серверов.

Когда я прочитал ваш вопрос, я решил попробовать его на эмуляторе. И это дало мне то же значение как для эмулятора, так и для реального устройства: текущее время в моей стране (GMT + 2).

Я также попытался изменить время моего устройства. Но тем не менее, значение, размещенное в базе данных, является текущим временем. Затем я попытался изменить часовой пояс в конфигурации проекта консоли Firebase. Но ценность остается прежней.

Если вы скажете, что значение опубликовано точно так же, но вы получаете разные значения, возможно, вам стоит рассказать нам, как вы показываете это значение?

+1

Хм, я решил свою проблему. Фактически, это показывает истинное время, потому что мои часы эмулятора 3 часа назад с моего реального устройства. Тогда нет проблем, это показывает в соответствии с временем устройства. Хорошо, мне нравится это. –

Смежные вопросы