我正在制作一个应用程序,将数据保存在两个不同的用户(A和B)数据库中。我只需要用户A的代码来删除用户B数据库的数据。我正在使用Firebase作为数据库。
我有一个代码,但这不起作用:
DatabaseReference driverRef = FirebaseDatabase.getInstance().getReference().child("Volunteer");
driverRef.orderByKey().equalTo(userId).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postsnapshot : dataSnapshot.getChildren()) {
String key = postsnapshot.getKey();
DatabaseReference driverRef = FirebaseDatabase.getInstance().getReference().child("Volunteer").child(key).child("requests").child("customerRideId");
driverRef.removeValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
您需要从数据库中检索其他人的userid
,因此用户A将能够删除用户B的数据。
如果你有这个:
User
useruidA
name: userA
email: [email protected]
useruidB
name: userB
email: [email protected]
当您检索userB的名称,然后还检索他的ID,以便能够删除它。
或者你可以这样做:
DatabaseReference data = FirebaseDatabase.getInstance().getReference().child("Users");
data.orderByChild("name").equalTo(userB).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
data.getRef().removeValue();
}
}
那样,你不需要他的id
只有这个名字。