要在Android Firebase云函数中使用电子邮件删除用户,可以按照以下步骤进行操作:
首先,在Firebase控制台中打开您的项目,并导航到“云函数”选项卡。如果您尚未设置云函数,请先设置。
在项目的根目录下,找到一个名为functions
的文件夹。如果该文件夹不存在,可以创建一个新的文件夹。
在functions
文件夹中,创建一个新的JavaScript文件,例如deleteUserByEmail.js
。
打开deleteUserByEmail.js
文件,并导入必要的Firebase和Admin SDK模块。代码如下所示:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const auth = admin.auth();
exports.deleteUserByEmail = functions.https.onCall(async (data, context) => {
const email = data.email;
// 使用电子邮件查询用户
const userRecords = await auth.getUserByEmail(email);
// 获取用户ID
const userId = userRecords.uid;
try {
// 删除用户
await auth.deleteUser(userId);
return { success: true, message: '用户已成功删除' };
} catch (error) {
return { success: false, message: '无法删除用户' };
}
});
保存文件并在终端中导航到functions
文件夹。
使用以下命令将云函数部署到Firebase:
firebase deploy --only functions
在Android应用程序中调用云函数的代码示例:
FirebaseFunctions functions = FirebaseFunctions.getInstance();
Map data = new HashMap<>();
data.put("email", "user@example.com");
functions.getHttpsCallable("deleteUserByEmail")
.call(data)
.continueWith(new Continuation() {
@Override
public Void then(@NonNull Task task) throws Exception {
if (task.isSuccessful()) {
Map result = (Map) task.getResult().getData();
boolean success = (boolean) result.get("success");
String message = (String) result.get("message");
if (success) {
Log.d(TAG, "用户已成功删除");
} else {
Log.d(TAG, "无法删除用户");
}
} else {
Log.e(TAG, "调用云函数时出错:" + task.getException().getMessage());
}
return null;
}
});
注意:确保在Android应用程序中正确配置Firebase和Firebase云函数。