我想在插入之前检查 ID 是否已存在(防止更新已存在的 ID)。 这是我到目前为止的代码:
database.child(id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Toast.makeText(getApplicationContext(), "it exists.", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplicationContext(), "it's OK.", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
问题是,当id不存在时,它会显示两个toast。但是,当它确实存在时,它只显示“它存在”。一个。
如何显示“它存在”。仅当 id 存在时才 toast /如何防止“它存在”。当 id 不存在时显示 toast?
编辑:
Firebase 数据库结构:
-DATABASE
-ID
-NAME
-DESCRIPTION
最佳答案
尝试这样
database.child(id).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue()!=null) {
Toast.makeText(getApplicationContext(), "it exists.", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplicationContext(), "it's OK.", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
关于java - 如果 Firebase 数据库 ID 存在,则通知用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47885110/