gpt4 book ai didi

java - 使用 firebase 文档的自定义用户声明的示例不起作用

转载 作者:行者123 更新时间:2023-11-30 07:45:49 27 4
gpt4 key购买 nike

我已尝试按照本指南创建我需要在客户端显示不同 UI 的三个角色

https://firebase.google.com/docs/auth/admin/custom-claims

首先我在我的 public void run 上初始化 firebase,在 main .java

    FileInputStream serviceAccount = new FileInputStream("MyRoute\\serviceAccountKey.json");

FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
.build();

FirebaseApp.initializeApp(options);

然后我按照指南中的相同方式在我的用户 Controller 上使用自定义用户声明用户 Controller .java

@RequestMapping(value = "/student", method = RequestMethod.POST)
private User createStudent(@RequestBody UserDTO userDTO) {
//Create the new User
User user = new User();
user.setUserType(UserType.STUDENT);
user.setEmail(userDTO.getEmail());
user.setFirstName(userDTO.getFirstName());
user.setLastName(userDTO.getLastName());
//verify the user and create custom role
String idToken = userDTO.getIdToken();
Task<FirebaseToken> decoded = FirebaseAuth.getInstance().verifyIdToken(idToken);
Map<String, Object> claims = new HashMap<>();
claims.put("student", true);
String uid = decoded.getUid();
FirebaseAuth.getInstance().setCustomUserClaims(uid, claims);

return userService.save(user);

有两个错误首先,我无法像文档中那样使用 decoded.getUid() 获取 uid因为它迫使我使用 Task 而不是 FirebaseToken

其次,我不能使用 FirebaseAuth.getInstance().setCustomUserClaims(uid, claims);
因为它说 The method setCustomUserClaims(String, Map) is undefined for the type FirebaseAuth

如果我将 setCustomUserClaims 更改为 setCustomClaims,因为 eclipse 提示我,我会收到以下错误FirebaseAuth 类型的方法 setCustomClaims(String, Map) 不可见

我是第一次使用 firebase,所以我不知道为什么这不起作用

最佳答案

您使用的是旧版本的 SDK。 Task API 在 6.0.0 版本中被移除。在同一版本中添加了 setCustomUserClaims() 等阻止方法。如果您想继续使用旧版本,那么以下应该有效:

ApiFuture<Void> result = FirebaseAuth.getInstance().setCustomUserClaimsAsync(uid, claims);

关于java - 使用 firebase 文档的自定义用户声明的示例不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51268470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com