Java 如果firebase中存在相同的值,如何创建条件
我如何才能看到一个子项中是否有一个相等的值,而如果它存在则不保存 我试着在这里这样做,但没有成功: 试试这个:Java 如果firebase中存在相同的值,如何创建条件,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我如何才能看到一个子项中是否有一个相等的值,而如果它存在则不保存 我试着在这里这样做,但没有成功: 试试这个: FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao(); final String idUsuario = CustomBase64.codificarBase64(autenticacao.getCurrentUser().getEmail());
FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();
final String idUsuario = CustomBase64.codificarBase64(autenticacao.getCurrentUser().getEmail());
DatabaseReference firebase = ConfiguracaoFirebase.getFirebaseDatabase().child("historico").child(idUsuario).child("id");
firebase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Toast.makeText(getActivity(), "Exist", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), "No Exist", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
将child
id
添加到上面的引用中child(“historico”).child(idUsuario).child(“id”)
,然后使用exists()
检查此dataSnapshot是否在数据库中。创建另一个函数,将数据推送到firebase,并从侦听器内部调用它。(在本例中,创建函数pushValueToFirebase
)
这对我不起作用。他正在创建另一个键。在回答中,它会检查此
idUsuario
下是否有id
,此id是一个值。每次我添加另一个值时,它都会创建另一个值,如果不想再次添加该值,则可以添加一个查询。执行此操作DatabaseReference firebase=configuracafirebase.getFirebaseDatabase().child(“historico”).orderByChild(“id”).equalTo(添加的id)
和datasnapshot.exists()将检查数据库中是否已经存在此id值。我不明白。你能举个例子吗?你可以使用监听器来检查这个值是否存在,然后它是否调用了一个推送这个值的函数。您是否特别询问如何向firebase添加值?此id是一个值。每次我添加另一个,它都会创建另一个,外观和您想要的行为是什么?我需要检查是否有任何值已使用相同的id发送。如果已发送,我将不保存。
FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();
final String idUsuario = CustomBase64.codificarBase64(autenticacao.getCurrentUser().getEmail());
DatabaseReference firebase = ConfiguracaoFirebase.getFirebaseDatabase().child("historico").child(idUsuario).child("id");
firebase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
Toast.makeText(getActivity(), "Exist", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), "No Exist", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();
final String idUsuario = CustomBase64.codificarBase64(autenticacao.getCurrentUser().getEmail());
DatabaseReference firebase = ConfiguracaoFirebase.getFirebaseDatabase().child("historico");
firebase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Boolean exists = false;
for (DataSnapshot child : dataSnapshot.getChildren()) {
if (child.getKey().equals(idUsario) {
exists = true;
}
}
if (!exists) {
//Your code here to push idUsario
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});