Соберите точное время, когда определенные данные были обновлены в Firebase через Android Studio

Могу я спросить, есть ли какая-либо реализация для сбора времени, когда обновляются первые данные. Например, в моем приложении есть функция очереди. Когда пользователь получит билет очереди, Firebase будет обновлена.

Поэтому я хотел бы знать время, когда первый пользователь в очереди.

Есть ли код для этого в Android Studio? Большое спасибо!!

Я не уверен, но чувствую, что вы ищете то, что Firebase называет отметки времени на стороне сервера. Когда вы пишете их из приложения Android, оно передает «фальшивое» значение маркера, которое затем сервер базы данных Firebase переводит в фактическую временную метку на стороне сервера.

Frank van Puffelen 21.03.2018 04:59

@FrankvanPuffelen Спасибо! Это то, что я хочу!

Molly Sin 24.03.2018 07:41
2
2
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

База данных Firebase не хранит метаданные (такие как временная метка) для выполняемых CRUD operations. По этой причине вам необходимо самостоятельно хранить такие данные, создав свой собственный механизм.

Фактически, вам нужно создать новое поле для каждого дочернего элемента, который вы хотите отслеживать, и изменять значение timestamp каждый раз, когда выполняется действие. Лучшая практика в базе данных Firebase - сохранять данные в виде метки времени, используя: ServerValue.TIMESTAMP.

Обратите внимание: когда вы сохраняете метку времени, вы сохраняете ее как Map, а при извлечении вы получаете ее как long.

Чтобы установить метку времени, я рекомендую вам использовать следующий код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Map<String, Object> map = new HashMap<>();
map.put("timestamp", ServerValue.TIMESTAMP);
rootRef.child("yourNode").updateChildren(map);

Чтобы вернуть вам данные, я рекомендую вам использовать следующий метод:

public static String getTimeDate(long timeStamp){
    try{
        DateFormat dateFormat = getDateTimeInstance();
        Date netDate = (new Date(timeStamp));
        return dateFormat.format(netDate);
    } catch(Exception e) {
        return "date";
    }
}

Все в порядке? Могу я помочь вам с другой информацией?

Alex Mamo 22.03.2018 08:59

Большое спасибо! Подходит для моей программы! @AlexMamo

Molly Sin 24.03.2018 07:44

Другие вопросы по теме