Могу я спросить, есть ли какая-либо реализация для сбора времени, когда обновляются первые данные. Например, в моем приложении есть функция очереди. Когда пользователь получит билет очереди, Firebase будет обновлена.
Поэтому я хотел бы знать время, когда первый пользователь в очереди.
Есть ли код для этого в Android Studio? Большое спасибо!!
@FrankvanPuffelen Спасибо! Это то, что я хочу!
База данных 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";
}
}
Все в порядке? Могу я помочь вам с другой информацией?
Большое спасибо! Подходит для моей программы! @AlexMamo
Я не уверен, но чувствую, что вы ищете то, что Firebase называет отметки времени на стороне сервера. Когда вы пишете их из приложения Android, оно передает «фальшивое» значение маркера, которое затем сервер базы данных Firebase переводит в фактическую временную метку на стороне сервера.