Javascript 注销用户后清理云Firestore中的用户数据

Javascript 注销用户后清理云Firestore中的用户数据,javascript,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Firebase,Google Cloud Firestore,Google Cloud Functions,我编写了一个函数,在用户从帐户注销后清理Cloud Firestore中的所有用户数据(集合、子集合和图像) 为此,我使用中的代码 我的代码: 'use strict'; const functions = require('firebase-functions'); const firebase_tools = require('firebase-tools'); const admin = require('firebase-admin'); admin.initializeApp(fun

我编写了一个函数,在用户从帐户注销后清理Cloud Firestore中的所有用户数据(集合、子集合和图像)

为此,我使用中的代码

我的代码:

'use strict';

const functions = require('firebase-functions');
const firebase_tools = require('firebase-tools');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
//const bucket = admin.storage().bucket("gs://movere-point.appspot.com/");

exports.recursiveDelete = functions.runWith({
    timeoutSeconds: 540,
    memory: '2GB'
})
.auth.user().onDelete((user) => {

    // const path = data.path;
    const path = "/Users/" + user.uid;

    console.log(path);

    return firebase_tools.firestore.delete(path, {
        project: process.env.GCLOUD_PROJECT,
        recursive: true,
        yes: true,
        token: ""
    })
    .then(() => {
        return {
            path: path 
        };
    });
});
我从Firebase控制台删除了一个用户,在函数日志中,我得到了错误:

Error
    at new FirebaseError (/srv/node_modules/firebase-tools/lib/error.js:9:18)
    at module.exports (/srv/node_modules/firebase-tools/lib/responseToError.js:38:12)
    at Request._callback (/srv/node_modules/firebase-tools/lib/api.js:39:35)
    at Request.self.callback (/srv/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/srv/node_modules/request/request.js:1161:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> (/srv/node_modules/request/request.js:1083:12)
错误
在新的FirebaseError(/srv/node_modules/firebase tools/lib/error.js:9:18)
在module.exports(/srv/node_modules/firebase tools/lib/responseToError.js:38:12)
应请求。_回调(/srv/node_modules/firebase tools/lib/api.js:39:35)
at Request.self.callback(/srv/node_modules/Request/Request.js:185:22)
两点钟(events.js:126:13)
at Request.emit(events.js:214:7)
应要求。(/srv/node_modules/request/request.js:1161:10)
在emitOne(events.js:116:13)
at Request.emit(events.js:211:7)
在收到消息时。(/srv/node_modules/request/request.js:1083:12)

帮助解决用户离开程序后删除所有用户数据的问题

问题中的链接不正确。但是,我想您应该参考此文档项:

在本例中,您将注意到在执行以下操作时使用令牌:

return firebase_tools.firestore
  .delete(path, {
    project: process.env.GCLOUD_PROJECT,
    recursive: true,
    yes: true,
    token: functions.config().fb.token
  })
在代码中,您已将空值分配给此令牌,这是您遇到错误的原因。

在终端中使用Firebase CLI时,需要执行以下操作:

firebase login:ci
您将获得一个令牌值,如:

✔  Success! Use this token to login on a CI server:

Z/A01c9zOI74FUgPJm5aEN9d2XyTKPgQkRlePQigxBBCSOUQ_0ktLW4mfAX3x4rFLL
然后需要将其存储为环境配置数据。由于令牌值为
functions.config().fb.token
,您应该执行以下操作:

firebase functions:config:set fb.token="Z/A01c9zOI74FUgPJm5aEN9d2XyTKPgQkRlePQigxBBCSOUQ_0ktLW4mfAX3x4rFLL"

然后重新部署云功能,您应该可以了

这里
token:“token”
我需要设置一个用户的token,这个用户需要删除吗?对不起,我不理解你的评论。只需按照答案中的解释进行操作:您生成一个令牌值,并将其存储在config data.Oooh。。。我理解我的错误。非常感谢。