Error when use Firebase Admin SDK with GraalVM Native Image
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- firebase, java
调研方向
从提供的 FirebaseAuth.updateUser 路径以及 FirebaseUserManager.lookupUserAccount、JsonParser 和 GetAccountInfoResponse 的堆栈跟踪条目开始。在 GraalVM Native Image 下重现 updateUser 调用,并将其与正常工作的 JVM 运行进行比较;完成的标准是确定 SDK 是否兼容,并记录或识别所需的 native-image 支持。
由索引模型根据 Issue 内容生成。
描述
- Operating System version: macOS 13.5
- Firebase SDK version: 9.2.0
- Library version: _____
- Firebase Product: auth
Hello,
I'm getting the error below when using Firebase Admin SDK with GraalVM native image.
When I run it with JVM it works perfectly.
Reference link: https://firebase.google.com/docs/auth/admin/manage-users#update_a_user
My code Example:
if (FirebaseApp.getApps().isEmpty()) new FirebaseUtil().init(FIREBASE_AUTH_KEY);
// Update User Firebase
UpdateRequest request = new UpdateRequest(firebaseUid)
.setPassword(user.getNewPassword());
FirebaseAuth.getInstance(FirebaseApp.getInstance()).updateUser(request);
Error:
java.lang.RuntimeException: java.lang.IllegalArgumentException:
at br.com.healthmode.serviceapilogin.service.LoginService.saveNewPassword(LoginService.java:86)
at br.com.healthmode.serviceapilogin.controller.LoginController.saveNewPassword(LoginController.java:60)
at br.com.healthmode.serviceapilogin.controller.$LoginController$Definition$Exec.dispatch(Unknown Source)
at io.micronaut.context.AbstractExecutableMethodsDefinition$DispatchedExecutableMethod.invoke(AbstractExecutableMethodsDefinition.java:371)
at io.micronaut.context.DefaultBeanContext$4.invoke(DefaultBeanContext.java:594)
at io.micronaut.web.router.AbstractRouteMatch.execute(AbstractRouteMatch.java:303)
at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:111)
at io.micronaut.http.context.ServerRequestContext.with(ServerRequestContext.java:103)
at io.micronaut.http.server.RouteExecutor.lambda$executeRoute$14(RouteExecutor.java:659)
at reactor.core.publisher.FluxDeferContextual.subscribe(FluxDeferContextual.java:49)
at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62)
at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194)
at io.micronaut.reactive.reactor.instrument.ReactorInstrumentation.lambda$init$0(ReactorInstrumentation.java:62)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
at io.micronaut.scheduling.instrument.InvocationInstrumenterWrappedCallable.call(InvocationInstrumenterWrappedCallable.java:53)
at java.base@17.0.6/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base@17.0.6/java.lang.Thread.run(Thread.java:833)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:775)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:203)
Caused by: java.lang.IllegalArgumentException:
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:900)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:360)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:318)
at com.google.api.client.json.JsonParser.parseAndClose(JsonParser.java:162)
at com.google.api.client.json.JsonParser.parseAndClose(JsonParser.java:144)
at com.google.firebase.internal.ErrorHandlingHttpClient.parse(ErrorHandlingHttpClient.java:120)
at com.google.firebase.auth.internal.AuthHttpClient.parse(AuthHttpClient.java:79)
at com.google.firebase.auth.FirebaseUserManager.lookupUserAccount(FirebaseUserManager.java:239)
at com.google.firebase.auth.FirebaseUserManager.getUserById(FirebaseUserManager.java:121)
at com.google.firebase.auth.AbstractFirebaseAuth$12.execute(AbstractFirebaseAuth.java:763)
at com.google.firebase.auth.AbstractFirebaseAuth$12.execute(AbstractFirebaseAuth.java:759)
at com.google.firebase.internal.CallableOperation.call(CallableOperation.java:36)
at com.google.firebase.auth.AbstractFirebaseAuth.updateUser(AbstractFirebaseAuth.java:740)
at br.com.healthmode.serviceapilogin.service.LoginService.saveNewPassword(LoginService.java:80)
... 21 more
Caused by: java.lang.IllegalArgumentException: unable to create new instance of class com.google.firebase.auth.internal.GetAccountInfoResponse because it has no accessible default constructor
at com.google.api.client.util.Types.handleExceptionForNewInstance(Types.java:162)
at com.google.api.client.util.Types.newInstance(Types.java:117)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:768)
... 34 more
Caused by: java.lang.InstantiationException: com.google.firebase.auth.internal.GetAccountInfoResponse
at java.base@17.0.6/java.lang.Class.newInstance(DynamicHub.java:639)
at com.google.api.client.util.Types.newInstance(Types.java:113)
... 35 more
Caused by: java.lang.NoSuchMethodException: com.google.firebase.auth.internal.GetAccountInfoResponse.()
at java.base@17.0.6/java.lang.Class.getConstructor0(DynamicHub.java:3585)
at java.base@17.0.6/java.lang.Class.newInstance(DynamicHub.java:626)
Is there any incompatibility between Firebase Admin SDK and Native Image?
- 主要语言
- Java
- 星标
- 620
- 派生
- 305
- 平均合并
- 4 天 9 小时
- 30 天内合并 PR
- 4
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
firebase/firebase-admin-java 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 48/100
firebase/firebase-admin-java#1231 ·
-
api: core
firebase/firebase-admin-java#1198 · 3 条评论 · 已指派 1 人 ·
-
api: remoteconfig
firebase/firebase-admin-java#1196 · 1 条评论 · 已指派 2 人 ·
-
难度 3/5 1-2 天 新手友好度 45/100
firebase/firebase-admin-java#1192 · 3 条评论 ·
-
needs-triage type: feature request
难度 3/5 1-2 天 新手友好度 45/100
firebase/firebase-admin-java#1149 · 1 条评论 ·
查看 firebase/firebase-admin-java 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
elastic/gradle-plugins#157 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
cryptomator/hub#497 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
johanhaleby/occurrent#1120 ·