Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果firebase中存在相同的值,如何创建条件_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

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) {
    }
});