Java 检查firebase数据库中的url
我想在“收藏夹”下为firebase数据库添加一个URL,但如果还没有。如何检查它。我只是个初学者。这就是我现在所尝试的Java 检查firebase数据库中的url,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我想在“收藏夹”下为firebase数据库添加一个URL,但如果还没有。如何检查它。我只是个初学者。这就是我现在所尝试的 databaseReference=mFirebaseDatabase.getReference("Users"); firebaseUser = FirebaseAuth.getInstance().getCurrentUser(); databaseReference.child(firebaseUser.get
databaseReference=mFirebaseDatabase.getReference("Users");
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
databaseReference.child(firebaseUser.getUid()).orderByChild("favourites").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot d : dataSnapshot.getChildren())
if (d.child("img_url").equals(uploadcurrent.getImageUrl()))
Toast.makeText(mcontext, "Already added", Toast.LENGTH_LONG).show();
else {
String key=databaseReference.push().getKey();
databaseReference.child(firebaseUser.getUid()).child("favourites").child(key).child("img_url").setValue(uploadcurrent.getImageUrl());
//do something if not exists
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
您可以直接在查询中检查url是否存在。为此,请更改以下代码行:
databaseReference=mFirebaseDatabase.getReference("Users");
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
databaseReference
.child(firebaseUser.getUid())
.orderByChild("favourites")
.addListenerForSingleValueEvent(/* ... */);
到
其中
url
是您实际查找的url的字符串表示形式。这可能有助于您添加查询的侦听器以确保完整性。@samthecodingman还将addListenerForSingleValueEvent
添加到解决方案中。仅添加该行没有帮助,它也需要功能体。您编写它的方式表明,问题中的侦听器代码无需修改即可工作。一个简单的haschilds()
就足够了。/*…*/请完成它。如果url已经存在,我想要toast
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference favouritesRef = rootRef.child("Users").child(uid).child("favourites");
Query query = favouritesRef.orderByChild("img_url").equalTo(url):
query.addListenerForSingleValueEvent(/* ... */);