Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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 将Firebase设置为仅与internet连接一起工作_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 将Firebase设置为仅与internet连接一起工作

Android 将Firebase设置为仅与internet连接一起工作,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我尝试开发“预订”应用程序。 这意味着:当用户单击“保留”按钮时,它将作为总保留的“+1”添加到数据库中。但当同一用户单击“取消保留”时,它会从数据库中减去“-1”。但问题是,只有当互联网连接打开时,它才能正常工作 在第二种情况下,当internet关闭,用户单击“保留”时,它在数据库中显示“1”(打开internet后)->这意味着它不会为数据库增加值,而只是替换为该“1” 因此: (在线) 数据库:“9”->点击“保留”值增加“+1”。 “保留”后的数据库:“10” “取消保留”后的数据库:

我尝试开发“预订”应用程序。 这意味着:当用户单击“保留”按钮时,它将作为总保留的“+1”添加到数据库中。但当同一用户单击“取消保留”时,它会从数据库中减去“-1”。但问题是,只有当互联网连接打开时,它才能正常工作

在第二种情况下,当internet关闭,用户单击“保留”时,它在数据库中显示“1”(打开internet后)->这意味着它不会为数据库增加值,而只是替换为该“1”

因此:

(在线)

数据库:“9”->点击“保留”值增加“+1”。
“保留”后的数据库:“10”
“取消保留”后的数据库:“9”

当用户在internet关闭时尝试保留时,会出现以下情况:

(离线)

数据库:“9”->单击“保留”值将替换为“+1”。
打开internet“保留”后的数据库:“1”
“取消保留”后的数据库“-1”

为了正确地解决这种情况,我是否应该设置“按钮”仅在internet连接打开时工作?这是解决这个问题的最简单方法吗

我阅读了onDisconnect()方法,但没有看到任何情况下如何设置firebase仅与联机用户一起工作,而不使用任何

如果有人能给我一个建议,我会很感激,如果有任何问题,我应该采取什么措施来解决这个问题

reserveBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(Utils.isNetworkAvailable) {
                //process reservation
            } else {
                Toast.makeText(getApplicationContext(), "Your device is not connected to internet!", Toast.LENGTH_SHORT).show();
            }
        }
    });

假设您正在使用注释中的
isNetworkAvailable
方法。这应该行得通。不要禁用按钮。

只有当用户在线时,预订等功能才能正常工作,不是吗?。如果用户处于脱机状态,请让用户单击按钮,但显示toast、snackbar或对话框,说明用户需要连接到Internet才能使用此功能。希望能帮上忙:)@YeMinHtut我想了想,但没能解决这个问题。因为即使用户看到此对话框,他也可能意外地单击此按钮,这将以错误的方式更改数据库中的值。我正在寻找的解决方案是,如何在用户脱机时禁用此按钮或其他功能,以防止修改数据。@Yemin但答案是正确的。当用户单击“保留”按钮时,首先要做的是检查用户是否连接到internet。(以下是检查设备是否连接到internet的代码片段-)。如果是,则仅处理保留方法。否则,让他干杯@NishanthSreedhara您的解决方案有效,先生:)但是您能告诉我我可以在您的代码中设置什么,因为当我打开internet时,我仍然无法单击“保留”,在用这些片段重新加载活动(您的代码在片段类中使用)后,我可以再次执行此操作。有没有其他方法可以设置此设置,当自动打开internet时,我可以立即单击“保留”?谢谢你的帮助!