Firebase 实时数据库未连接

Posted

技术标签:

【中文标题】Firebase 实时数据库未连接【英文标题】:Firebase realtime database is not connecting 【发布时间】:2021-07-28 02:02:57 【问题描述】:

我正在尝试使用 firebase 实时数据库。我已将规则设置为 true,并在我的项目中添加了所有必需的依赖项以及 Internet 权限。我的手机与 wifi 连接良好。

当我尝试使用写入数据时,它不起作用。所以我根据文档检查了状态,它显示 dB 未连接到我的应用程序。

DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() 
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot) 
        boolean connected = snapshot.getValue(Boolean.class);
        if (connected) 
            Log.d(TAG, "connected");
         else 
            Log.d(TAG, "not connected");
        
    

    @Override
    public void onCancelled(@NonNull DatabaseError error) 
        Log.w(TAG, "Listener was cancelled");
    
);

我做错了什么吗?

感谢帮助。

PD

【问题讨论】:

你能澄清“它不工作”吗?你的onDataChangeonCancelled 会被调用吗? 在onCancelled方法中,使用日志或者Toast来显示错误 是的,但它没有连接。 您所说的“未连接”是什么意思? onDataChange 或 onCancelled 会触发吗? 【参考方案1】:

您应该添加 查询

DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference();
Query query = connectedRef.child("info/connected");
query.addValueEventListener(new ValueEventListener()  
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot) 
        boolean connected = snapshot.getValue(Boolean.class);
        if (connected) 
        Log.d(TAG, "connected");
         else 
        Log.d(TAG, "not connected");
        
    

    @Override
    public void onCancelled(@NonNull DatabaseError error) 
        Log.w(TAG, "Listener was cancelled");
    
);

【讨论】:

现在它甚至没有进入事件监听器。【参考方案2】:

通过重新创建数据库并再次连接到应用程序来解决问题。谢谢你的回答。

【讨论】:

以上是关于Firebase 实时数据库未连接的主要内容,如果未能解决你的问题,请参考以下文章

firebase 实时数据库未在线更新

添加数据时,Firebase 列表视图未实时显示

数据未插入 Firebase 实时数据库抛出 Android

数据未从 Android 应用程序写入 Firebase 实时数据库

实时数据库未将数据推送到 Firebase

Firebase实时数据库getvalue()未映射对象