Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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
Java 在特定时间使用倒计时设置Firestore上的特定数据_Java_Android_Google Cloud Firestore_Countdowntimer - Fatal编程技术网

Java 在特定时间使用倒计时设置Firestore上的特定数据

Java 在特定时间使用倒计时设置Firestore上的特定数据,java,android,google-cloud-firestore,countdowntimer,Java,Android,Google Cloud Firestore,Countdowntimer,您好,我想在特定时间使用倒计时设置firestore上的特定数据。当我的倒计时结束时,firestore上的数据设置良好,但每次更新活动时,数据都会一次又一次地重置。 当我的数据设置一次时,有没有可能破坏finish方法?。如果你有其他建议表示欢迎 firebaseAuth=FirebaseAuth.getInstance(); firebaseFirestore=FirebaseFirestore.getInstance(); long mil=200000;

您好,我想在特定时间使用倒计时设置firestore上的特定数据。当我的倒计时结束时,firestore上的数据设置良好,但每次更新活动时,数据都会一次又一次地重置。 当我的数据设置一次时,有没有可能破坏finish方法?。如果你有其他建议表示欢迎

    firebaseAuth=FirebaseAuth.getInstance();
    firebaseFirestore=FirebaseFirestore.getInstance();

    long mil=200000;

    downTimer =new CountDownTimer(mil,1000) {
        @Override
        public void onTick(long millisUntilFinished) {

        }

        @Override
        public void onFinish() {

            Map<String,Object> map=new HashMap<>();
            map.put("Password","userPassword");

            firebaseFirestore.collection("UsersName").document().set(map).addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {

                    if (task.isSuccessful()) {

                        Toast.makeText(ForgetPasswordActivity.this, "Done sir", Toast.LENGTH_SHORT).show();
                       downTimer.cancel();
                    }
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {

                    e.printStackTrace();
                }
            });

        }
    }.start();

}
firebaseAuth=firebaseAuth.getInstance();
firebaseFirestore=firebaseFirestore.getInstance();
长密耳=200000;
定时器=新的定时器(密耳,1000){
@凌驾
公共void onTick(长毫秒未完成){
}
@凌驾
公共无效onFinish(){
Map Map=newhashmap();
map.put(“密码”、“用户密码”);
firebaseFirestore.collection(“UsersName”).document().set(map).addOnCompleteListener(新OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(ForgetPasswordActivity.this,“Done sir”,Toast.LENGTH_SHORT.show();
downTimer.cancel();
}
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
e、 printStackTrace();
}
});
}
}.start();
}

}

每次重新启动活动时,都会创建一个新的计时器实例,并在活动处于活动状态时一直存在

如果您需要一个能够生存到活动生命周期的计时器,您应该将它放在前台(或后台)服务或类似的服务中

因为您使用的是firebase,所以另一个解决方案是云函数