Firebase处理与数据库断开连接

时间:2016-09-06 22:31:30

标签: android firebase firebase-realtime-database

我不确定它是disconect还是DatabaseErrors事件。首先我在Firebase上开始加载数据时有一个对话框显示,然后我想在两种情况下忽略该对话框:

  1. 有互联网:加载数据成功,我在onDataChange中忽略对话框。

  2. 没有互联网连接或在应用启动时快速关闭wifi。

  3. 在第二种情况下,我认为它会调用onCancelled,并且在那种方法中,我将忽略对话框。但实际上,它不是叫取消取消。

    那么,我如何在第二种情况下解除对话。这是我的代码

    private void getCategory() {
        mDatabase = FirebaseDatabase.getInstance().getReference();
        mDatabase.child(ReferenceToFirebase.CHILD_CATEGORIES)
                .addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        //do something
    
                        //then dismiss dialog
                        mDialog.dismiss();
                    }
    
                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                        mDialog.dismiss();
                    }
                });
    }
    

1 个答案:

答案 0 :(得分:1)

当服务器拒绝监听器时,通常在用户没有访问数据的权限时调用

function theCountDown(n) { window.setTimeout( myLoop(n) , 2000); } function myLoop (t) { var counter = t; if (counter > 1) { counter--; console.log('MAIN: Counter: ' + counter + ' Loop ' + t + ' seconds.'); myLoop(counter); } else { console.log('SUB: Counter: ' + counter + ' Loop ' + t + ' seconds.'); } } theCountDown(8, 4);

如果您没有与Firebase数据库建立连接,您可能希望阻止附加监听器。为此,您可以listen to .info/connected并且仅在真实时附加侦听器。

onCancelled()