Android 仅使用ServerValue.TIMESTAMP从firebase服务器获取时间和日期
我使用了一种方法将时间和日期保存到Android 仅使用ServerValue.TIMESTAMP从firebase服务器获取时间和日期,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我使用了一种方法将时间和日期保存到firebase数据库。我已将该方法置于Onstart方法中。但是,当我更改系统时间时,首先需要系统时间,然后才需要服务器时间。我想跳过系统时间 btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseReferenc
firebase数据库
。我已将该方法置于Onstart方法中。但是,当我更改系统时间时,首先需要系统时间,然后才需要服务器时间。我想跳过系统时间
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Map values = new HashMap();
values.put("Date", ServerValue.TIMESTAMP);
ref.child("Current-Date").updateChildren(values);
Toast.makeText(getApplicationContext(),"Date Saved",Toast.LENGTH_SHORT).show();
}
});
}
}
要保存服务器时间戳值,请使用以下代码
@Override
protected void onStart() {
super.onStart();
//save server time to database
DatabaseReference ref =
FirebaseDatabase.getInstance().getReference();
Map values = new HashMap();
values.put("time", ServerValue.TIMESTAMP);
ref.child(Uid).updateChildren(values);
}
为了确保您希望将服务器时间戳保存到数据库中而不是设备时间,我是对的?是的,我希望@alicheckout答案查看我的答案。这是Firebase的预期行为:当您请求服务器时间时,它首先激发一个具有本地估计值的事件,然后在返回时激发另一个具有实际服务器端值的事件。没有办法阻止这种行为。请看我的回答,以获得更详细的解释:相同的问题。它首先获取系统磁贴并获取服务器时间。当我更改系统时间并单击按钮时,它首先获取系统时间,然后获取服务器时间:(很抱歉,我没有理解您的意思,您如何判断这需要系统时间,然后才能获取服务器时间?我无法输入完整代码。sof不允许输入完整代码,因为我的代码很长。是否有其他方法获取当前日期GMT+6?没有系统。