Как сохранить текущую дату / время, когда я добавлю новое значение в базу данных Firebase Realtime

Я хочу сохранить текущую дату / время в определенном поле, когда я добавляю новое значение в базу данных Firebase Realtime через панель управления.

Как я могу это достичь?

Пожалуйста, помогите мне.

Лучшей практикой является сохранение ваших данных в виде TIMESTAMP как этот ServerValue.TIMESTAMP .

 DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); Map map = new HashMap(); map.put("timestamp", ServerValue.TIMESTAMP); ref.child("yourNode").updateChildren(map); 

Также помните, когда вы устанавливаете TIMESTAMP , вы устанавливаете его как Map , но когда вы его извлекаете, вы получаете его как Long . Чтобы вернуть данные, я предлагаю вам использовать этот метод:

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

Изменить: class модели должен выглядеть следующим образом:

 public class YourModelClass { //private fields private Map timestamp; public YourModelClass() {} //public setters and getters for the fields public void setTimestamp(Map timeStamp) {this.timestamp= timestamp;} public Map getTimestamp() {return timestamp;} } 

Помните, что ServerValue.TIMESTAMP – это всего лишь токен, который Firebase Realtime Database преобразует в число на стороне сервера, когда он используется в качестве дочернего значения во время операции записи. Дата появляется только в базе данных после завершения операции записи.

Чтобы получить временную timestamp , есть и другой подход, который заключается в том, чтобы написать фразу в Cloud Functions для Firebase, и это будет так же просто, как:

 exports.currentTime = functions.https.onRequest((req, res) => { res.send({"timestamp":new Date().getTime()}) }) 

Вы можете разместить это в Cloud Function и получить временную метку сервера без взаимодействия с пользователем.

Алекс Мамо прав, но вот так вы должны пройти, если вы его назовете из модельного classа

 public class FirebMessage { public String message; public String senderPhoneNumber; public String receiverPhoneNumber; public Map time; public FirebMessage() { } public FirebMessage(String message, String senderPhoneNumber, String receiverPhoneNumber, Map time) { this.message = message; this.senderPhoneNumber = senderPhoneNumber; this.receiverPhoneNumber = receiverPhoneNumber; this.time = time; } 

Затем потребляйте следующим образом

  private void writeNewMessage(String message, String receiver,String sender) { FirebMessage firebMessage = new FirebMessage(message, receiver,sender,ServerValue.TIMESTAMP); mDatabase.child("messages").push().setValue(firebMessage, new DatabaseReference.CompletionListener() { @Override public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) { if (databaseError != null) { Log.e(TAG,"Data Not saved"); } else { Log.e(TAG,"Data saved successfully"); } } }); } 

Используйте тип данных Number в Firebase.

  1. Храните текущие миллины, сохраняя данные в Firebase.
  2. При извлечении данных вы получите миллис, которые вы ранее сохранили. Разберитесь в Java Date Instance и продолжайте работу.
  • Внутренний class может получить доступ, но не обновлять значения - AsyncTask
  • Установить альфа / непрозрачность макета
  • Как поймать особые исключения Firebase Auth
  • Как вернуть логическое значение из AsyncTask?
  • Уменьшение размера приложения для Android (apk)
  • Пользовательский элемент строки для Android для ListView
  • Создание приложения Android Lock Screen.
  • Как я могу получить результаты сканирования Android Wifi в список?
  • Is -Djava.library.path = ... эквивалентно System.setProperty ("java.library.path", ...)
  • Render PDF-файл с помощью Java на Android
  • java.lang.numberformatexception: недействительный double: ""
  • Давайте будем гением компьютера.