我正在创建一个将数据保存在两个不同用户(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) {
}
});
答案 0 :(得分:2)
您需要从数据库中检索其他人的userid
,以便用户A能够删除用户B的数据。
如果你有这个:
User
useruidA
name: userA
email: userA@gmail.com
useruidB
name: userB
email: userB@gmail.com
当您检索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
名称。