Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅使用ServerValue.TIMESTAMP从firebase服务器获取时间和日期_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

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?没有系统。