【发布时间】:2022-01-23 21:27:39
【问题描述】:
我正在尝试通过我的代码在 Firebase Auth 上管理用户。我正在关注文档:https://cloud.google.com/identity-platform/docs/admin/manage-users
这是我制作的代码:
public async System.Threading.Tasks.Task<int> DeleteAsync(string email)
{
try {
GoogleCredential cred = GoogleCredential.FromFile("path\\to\\downloadfile\\Mysandboxproject.json");
FirebaseApp.Create(new AppOptions()
{
Credential = cred,
ServiceAccountId = "mailserviceaccount@sandboxproject.iam.gserviceaccount.com",
});
//Get User To Remove:
UserRecord userRecord = await FirebaseAuth.DefaultInstance.GetUserByEmailAsync(email);
await FirebaseAuth.DefaultInstance.DeleteUserAsync(userRecord.Uid);
return 1;
}
catch (Exception ex)
{
throw ex;
}
}
但是当它转到 GetUserByEmailAsync 的行时,它永远不会返回......不会抛出异常,也不会返回用户,当然用户永远不会被删除。 我究竟做错了什么?我是否遗漏了与 firebase 通信的连接或配置相关的内容?提前致谢。
【问题讨论】:
-
服务帐号是否与 Firebase 在同一个项目中?它有正确的权限吗?尝试使用其他语言的功能以确定是您的配置还是底层 API 方法对您来说有多难?
-
旁白:我鼓励您考虑使用Application Default Credentials。它将使您的代码及其部署更简单。不要忘记
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json。 -
我刚刚在一个包含 Firebase Auth 的项目上尝试了等效的 Golang 代码。该项目有一个具有 Firebase Auth Admin 角色的服务帐户 (roles/firebaseauth.admin)。它奏效了。
标签: c# google-cloud-platform google-authenticator oauth-2.0