【问题标题】:Firebase realtime database is not connectingFirebase 实时数据库未连接
【发布时间】: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

【问题讨论】:

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

标签: android database firebase firebase-realtime-database


【解决方案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】:

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

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2017-07-24
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多