有没有办法延迟删除Firebase用户及其相关数据?

克里斯托弗·摩尔

我正在创建一个Flutter应用程序,该应用程序使用Firebase作为后端,通过Firestore作为数据库进行身份验证,并存储较大的文件以存储一些用户数据。我想允许用户删除其帐户和所有相关数据,但我不希望立即执行此操作,以便用户决定在15天内左右回来时可以恢复其帐户。

我本来以为可以通过我的应用调用的Firebase函数来做到这一点,如下所示:

import * as functions from 'firebase-functions';

const admin = require('firebase-admin');
admin.initializeApp();

const fifteenDays = 1296000000;

export const helloWorld = functions.https.onCall((data, context) => {
    setTimeout(async () => {
        try {
            await admin.auth().deleteUser(data.id);
            console.log(`Deleted User: ${data.id}`);
            await admin.firestore().collection("users").document(data.id).delete();
            console.log(`Deleted User Firestore: ${data.id}`);
            await admin.storage().bucket().deleteFiles({
                    prefix: `userPhotos/${data.id}/`,
                    force: true,
                },
                function(err: any) {
                    if (err) {
                        console.log(err);
                    }
                    else {
                        console.log(`All the Firebase Storage files in users/${data.id}/ have been deleted`);
                    }
                }
            );
        }
        catch (error) {
            console.log(error);
        }
    }, fifteenDays);

});

但是,在阅读了Firebase Functions技巧和窍门以找到取消超时的方法之后,我看到在函数终止后运行的代码无法访问CPU,因此该代码甚至无法工作。

有人可以取消计划的删除功能来实现我所需的方法吗?任何免费的解决方案都会有所帮助。

费尔南多·罗查

您始终可以创建一个“ Users_to_delete”的集合,并在文档中插入用户ID和删除日期。

例如

Users_to_delete

|----Document ID

|-------- UserID

|-------- Date_to_delete

然后,每天/每小时在云函数中运行一个函数,以检查当天的集合过滤并删除那里的每个用户。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有办法获取表单元素及其相关值

来自分类Dev

有没有办法列出Redis的所有键及其数据类型?

来自分类Dev

有没有办法删除与Ckeditor gem相关的所有文件

来自分类Dev

有没有办法观看Cookie及其价值?

来自分类Dev

有没有办法批准用户插入到 android 中的 firebase 数据库中的数据?

来自分类Dev

有没有办法延迟加载Ruby Gem?

来自分类Dev

有没有办法延迟popstate事件?

来自分类Dev

有没有办法在JQuery中延迟mouseleave?

来自分类Dev

有没有办法抵消或延迟li动画?

来自分类Dev

有没有办法确定当前用户是否具有删除权限?

来自分类Dev

有没有办法保持用户输入数字的长度,以防止删除多余的 0?

来自分类Dev

有没有办法在 firebase 上收集用户输入?

来自分类Dev

有没有办法以编程方式添加用户?

来自分类Dev

有没有办法让当前的 RPC 用户登录?

来自分类Dev

有没有办法从CloudFront数据中获取并发用户数?

来自分类Dev

有没有办法提示用户哪种数据类型用作模板C ++

来自分类Dev

有没有办法在领域数据库中重置用户的密码

来自分类Dev

有没有办法删除小兵?

来自分类Dev

有没有办法删除小兵?

来自分类Dev

有没有办法删除历史JShell?

来自分类Dev

有没有办法从屏幕上删除乌龟?

来自分类Dev

有没有办法删除已搁置的内容?

来自分类Dev

有没有办法删除重复的标签?

来自分类Dev

有没有办法防止自动变量删除?

来自分类Dev

有没有办法删除线程睡眠代码?

来自分类Dev

有没有办法删除重要的评论?

来自分类Dev

有没有办法删除 + @ ?迹象

来自分类Dev

有没有办法在解析 XML 数据时删除显式属性名称?

来自分类Dev

有没有办法使用按钮和 php 删除我的数据库行

Related 相关文章

  1. 1

    有没有办法获取表单元素及其相关值

  2. 2

    有没有办法列出Redis的所有键及其数据类型?

  3. 3

    有没有办法删除与Ckeditor gem相关的所有文件

  4. 4

    有没有办法观看Cookie及其价值?

  5. 5

    有没有办法批准用户插入到 android 中的 firebase 数据库中的数据?

  6. 6

    有没有办法延迟加载Ruby Gem?

  7. 7

    有没有办法延迟popstate事件?

  8. 8

    有没有办法在JQuery中延迟mouseleave?

  9. 9

    有没有办法抵消或延迟li动画?

  10. 10

    有没有办法确定当前用户是否具有删除权限?

  11. 11

    有没有办法保持用户输入数字的长度,以防止删除多余的 0?

  12. 12

    有没有办法在 firebase 上收集用户输入?

  13. 13

    有没有办法以编程方式添加用户?

  14. 14

    有没有办法让当前的 RPC 用户登录?

  15. 15

    有没有办法从CloudFront数据中获取并发用户数?

  16. 16

    有没有办法提示用户哪种数据类型用作模板C ++

  17. 17

    有没有办法在领域数据库中重置用户的密码

  18. 18

    有没有办法删除小兵?

  19. 19

    有没有办法删除小兵?

  20. 20

    有没有办法删除历史JShell?

  21. 21

    有没有办法从屏幕上删除乌龟?

  22. 22

    有没有办法删除已搁置的内容?

  23. 23

    有没有办法删除重复的标签?

  24. 24

    有没有办法防止自动变量删除?

  25. 25

    有没有办法删除线程睡眠代码?

  26. 26

    有没有办法删除重要的评论?

  27. 27

    有没有办法删除 + @ ?迹象

  28. 28

    有没有办法在解析 XML 数据时删除显式属性名称?

  29. 29

    有没有办法使用按钮和 php 删除我的数据库行

热门标签

归档