答案 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) {
}
});
希望对您有所帮助!
谢谢。