【问题标题】:How to delete user from Realtime Database and Firebase Authentication? Android Java如何从实时数据库和 Firebase 身份验证中删除用户?安卓Java
【发布时间】:2021-03-25 08:33:01
【问题描述】:

大家好,你们知道如何使用 firebase auth 帐户同时从实时数据库中删除数据吗?此代码已经在工作,已经仅从实时数据库中删除数据,有什么方法可以将其与 Firebase 身份验证帐户一起删除? 我的 Firebase Auth 的 UUID 和 Realtime DB 的 Child 基本上都是一样的。

holder.btndel_stud.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Users");
                final DatabaseReference firebaseUser = FirebaseDatabase.getInstance().getReference(FirebaseAuth.getInstance().getUid());
                final String uniqueKey = addingStudentsArrayList.get(position).getUniqueid();
                final String studentName = addingStudentsArrayList.get(position).getFullName();
                databaseReference.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                        databaseReference.child(uniqueKey).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() {
                            @Override
                            public void onSuccess(Void aVoid) {
                                Toast.makeText(context, "Deleted User From Database...", Toast.LENGTH_SHORT).show();
                                firebaseUser.removeValue();
                            }
                        });
                    }
                    @Override
                    public void onCancelled(@NonNull DatabaseError error) {

                    }
                });

            }
        });

作为参考,这里是 Firebase 身份验证中的帐户图像

这是存储在实时数据库中的用户数据的图像。

【问题讨论】:

    标签: android firebase-realtime-database firebase-authentication


    【解决方案1】:

    不可能同时进行这两项操作。 Realtime Database 和 Firebase Auth 是具有不同 API 的不同产品,您必须分别使用它们的 API 才能完成这项工作。

    如果您希望用户能够连同他们的帐户一起删除他们的数据,您应该编写代码先从数据库中删除数据,然后再删除帐户。

    如果您尝试访问当前登录用户以外的其他用户的数据和帐户,则需要使用Firebase Admin SDK 在后端完成所有这些工作。同样,您需要分别处理每个产品的 API。

    【讨论】:

    • 哦,我明白了。感谢您的澄清,我认为只要用户是管理员或要删除的代码在管理员帐户的活动中,它就可以删除 Auth 和 RealtimeDB。基本上我需要 Firebase Admin SDK 来完全控制两个 api 中数据的删除,对吗?谢谢!
    • 前端用户绝对不能删除其他用户帐户,无论他们在您的系统中可能有什么自定义声明或特殊指定。这就是 Admin SDK 的用途,它必须在安全的环境中运行以避免安全问题。
    猜你喜欢
    • 2019-07-21
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2017-12-25
    • 2017-12-26
    • 2019-08-13
    • 2018-07-15
    相关资源
    最近更新 更多