如何检查值是否在推送节点中退出或不是Android Firebase

时间:2019-03-07 09:21:57

标签: java android firebase firebase-realtime-database

image

我有一个链接=“ example.com”

现在,我要检查此完整树是否已包含链接。如果没有,那么我想将数据插入Firebase。怎么做? 我陷在推ID上,无法从所有这些链接中找到链接。

3 个答案:

答案 0 :(得分:1)

要解决此问题,您应该使用如下查询:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference dataRef = rootRef.child("Data");
Query query = dataRef.child(uid).orderByChild("link").equalTo("example.com");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapshot.exists()) {
            //Do something
        } else {
            //Do something else
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
query.addListenerForSingleValueEvent(valueEventListener);

答案 1 :(得分:0)

您可以在链接下方添加一个字段,该字段应该唯一。然后,您可以将数据与该键进行比较。

答案 2 :(得分:0)

尝试此代码

final String yourLink="example.com";
        final boolean[] exist = {false};
        FirebaseDatabase.getInstance().getReference().child("Data").child(FirebaseAuth.getInstance().getUid()).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(dataSnapshot.exists())
                {
                    for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
                    {
                        if(dataSnapshot1.exists())
                        {
                            if(dataSnapshot1.child("link").getValue().toString().equals(yourLink))
                            {
                                //Toast.makeText(getApplicationContext(),"Link Already Exist",Toast.LENGTH_LONG).show();
                                exist[0] =true;
                            }
                        }
                    }
                    if(!exist[0])
                    {
                        FirebaseDatabase.getInstance().getReference().child("Data").child(FirebaseAuth.getInstance().getUid()).push().child("link").setValue(yourLink);
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

希望对您有所帮助!

谢谢。