Android 如何使用POJO类在长时间内获取Firebase ServerValue.Timestamp

Android 如何使用POJO类在长时间内获取Firebase ServerValue.Timestamp,android,android-studio,firebase,firebase-realtime-database,Android,Android Studio,Firebase,Firebase Realtime Database,当我使用getDateLastChangedLong方法加载时间戳值时,它会给出一个NullPointerException。如何将其转换为Long。 ]为了在Firebase数据库中设置时间戳,您需要将字段声明为映射,而不是像我看到的那样声明为对象,然后使用服务器值。时间戳如下: DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); Map<String, Object> map = new

当我使用getDateLastChangedLong方法加载时间戳值时,它会给出一个NullPointerException。如何将其转换为Long。


]

为了在Firebase数据库中设置
时间戳
,您需要将字段声明为
映射
,而不是像我看到的那样声明为对象,然后使用
服务器值。时间戳
如下:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Map<String, Object> map = new HashMap<>();
map.put("time", ServerValue.TIMESTAMP);
yourRef.child("yourNode").updateChildren(map);
public class ImageUpload {
    private Map<String, String> timeStamp;
    //other fields

    public Map<String, String> getTimeStamp() {
        return timeStamp;
    }

    public void setTimeStamp(Map<String, String> timeStamp) {
        this.timeStamp = timeStamp;
    }

    //other setters and getters.
}
为了使用公共getter
getTimeStamp()
获取时间戳,您需要在
ImageUpload
节点上附加一个侦听器,并迭代来自
dataSnapshot
对象的数据

如果您还想转换回数据,我建议您使用以下方法:

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

我不确定,但我认为日期的类型应该是长的,因为它是unix时间戳而不是对象,
date
字段的getter和setter应该是
getDate
setDate
,而不是像您所给出的任何其他方法名
getDateLastChangeLong
,但我想从POJO中检索它,而不是从POJO中检索它从firebase数据库中,POJO是数据库的镜像。换句话说,POJO助手类帮助从数据库中获取数据。请查看我的更新答案。getter方法将检索key以及value或just value。
getTimeStamp()
将只检索
long
的值。一旦你有了这个值,你就可以使用上面的方法来转换它。我想使用imageUpload构造函数将时间戳插入firebase数据库。请编辑代码好吗