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

问题描述 投票:0回答:1

我正在制作一个应用程序,将数据保存在两个不同的用户(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) {
                }
            });
android firebase firebase-realtime-database
1个回答
2
投票

您需要从数据库中检索其他人的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只有这个名字。

© www.soinside.com 2019 - 2024. All rights reserved.