如何在Firebase中删除其他用户数据

时间:2018-03-04 17:58:45

标签: android firebase firebase-realtime-database

我正在创建一个将数据保存在两个不同用户(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) {
                }
            });

1 个答案:

答案 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名称。