Maison >Java >javaDidacticiel >Comment puis-je ajouter automatiquement des horodatages aux entrées de la base de données en temps réel Firebase ?

Comment puis-je ajouter automatiquement des horodatages aux entrées de la base de données en temps réel Firebase ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 13:51:14663parcourir

How Can I Automatically Add Timestamps to Firebase Realtime Database Entries?

Suivi automatique des horodatages dans les ajouts à la base de données en temps réel Firebase

Dans la base de données en temps réel Firebase, le maintien d'horodatages précis est crucial pour le classement, le suivi des modifications et la garantie de l'intégrité des données. Lorsque vous ajoutez de nouvelles valeurs via le panneau de contrôle de la base de données, vous souhaiterez peut-être capturer automatiquement la date et l'heure actuelles. Cet article explique comment y parvenir en utilisant ServerValue.TIMESTAMP.

Solution utilisant ServerValue.TIMESTAMP

La meilleure pratique consiste à enregistrer votre horodatage en tant que type de données TIMESTAMP à l'aide de ServerValue.TIMESTAMP. Cela garantit que la base de données définit automatiquement l'horodatage lorsque la nouvelle valeur est ajoutée.

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

Lors de la récupération de l'horodatage, il sera stocké en tant que valeur longue. Pour obtenir la date et l'heure dans un format lisible par l'homme, vous pouvez utiliser la méthode suivante :

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

Modifier : Pour stocker correctement l'horodatage dans une classe de modèle, vous pouvez définir un champ de type Map et utilisez l'annotation @ServerTimestamp.

public class YourModelClass {
    private Map<String, String> timestamp;

    @ServerTimestamp
    public void setTimestamp(Map<String, String> timeStamp) {this.timestamp= timestamp;}
    public Map<String, String> getTimestamp() {return timestamp;}
}

Approche alternative utilisant les fonctions Cloud

Une autre approche consiste à créer une fonction Cloud dans Firebase qui renvoie l'horodatage actuel du serveur. Vous pouvez ensuite récupérer cet horodatage à partir de votre code frontend.

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

Cette méthode fournit un moyen cohérent et fiable d'obtenir l'horodatage du serveur sans interaction de l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn