针对Android的Firebase移动连接测试问题

时间:2017-12-01 19:17:01

标签: android firebase-realtime-database

我正在使用Firebase实时数据库构建应用,并且我正在测试onFailure回调。我关闭移动数据并运行下面的代码。

mDatabaseReference.updateChildren(childUpdates)
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(TeamActivity.this, R.string.toast_message_error_add, Toast.LENGTH_LONG).show();
                }
            });

问题是toast消息没有弹出,然后当我重新打开移动数据时,突然间,我的firebase数据库在几秒钟之后就被填充了。现在我明白当你设置FirebaseDatabase.getInstance()。setPersistenceEnabled(true)时会发生这种情况,但是我没有这个设置并且不想设置它。当互联网连接关闭时,应用程序应显示Toast消息,因为它应该无法写入。任何人都知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

{{1}}回调仅在服务器上的写入失败时触发,通常是因为它被安全规则拒绝。

没有网络连接不会触发失败,它只会延迟写入数据库服务器,直到您再次重新联机为止。

另见:

答案 1 :(得分:1)

您可以使用该线程来检查连接是否可用,因为firebase不提供检查方法:How to check currently internet connection is available or not in android