如果目录不存在,则出现Firebase错误消息

时间:2018-07-26 11:52:59

标签: android firebase firebase-realtime-database

如果Firebase数据库不存在,我想与烤面包一起显示错误消息。

一个例子:当我删除数据库,删除firebase项目或没有数据库时,该应用将无法连接到firebase数据库。

因此,当所有这些情况发生时,应用程序应该显示一条错误的吐司消息“ databese不存在”或“未连接到databese”。

2 个答案:

答案 0 :(得分:2)

由于您在查找Firebase实时数据库或Cloud Firestore时未在问题中提及,因此我会为您提供答案。因此,在使用Firebase实时数据库的情况下,Eparams上有一个特殊位置,该位置在Firebase实时数据库客户端的连接状态每次更改时都会更新。这是官方文档中的示例:

/.info/connected

这是您如何知道客户端是否连接到服务器的方法。

对于Cloud Firestore,当您离线且正在使用DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected"); connectedRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { boolean connected = snapshot.getValue(Boolean.class); if (connected) { System.out.println("connected"); } else { System.out.println("not connected"); } } @Override public void onCancelled(DatabaseError error) { System.err.println("Listener was cancelled"); } }); 调用时,结果将来自您的应用程序正在使用的Cloud Firestore数据的缓存副本。

要检查数据是来自缓存还是来自Firestore服务器,可以使用以下代码行:

get()

答案 1 :(得分:1)

引用数据库的主节点,并使用exist()检查该引用是否存在

DatabaseReference mDatabase;

mDatabase = FirebaseDatabase.getInstance().getReference();

mDatabase.addValueEventListener(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {
    if(!dataSnapshot.exists())
        Log.e("No database","Connection Lost");
  }

  @Override
  public void onCancelled(DatabaseError databaseError) {
    System.out.println("The read failed: " + databaseError.getCode());
  }
});

如果不存在,将没有任何内容可以检查该数据库