如果Firebase数据库不存在,我想与烤面包一起显示错误消息。
一个例子:当我删除数据库,删除firebase项目或没有数据库时,该应用将无法连接到firebase数据库。
因此,当所有这些情况发生时,应用程序应该显示一条错误的吐司消息“ databese不存在”或“未连接到databese”。
答案 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());
}
});
如果不存在,将没有任何内容可以检查该数据库