Error when use Firebase Admin SDK with GraalVM Native Image
維護者通常 4 天內回覆
還沒有人認領這個 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 [email protected]/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at [email protected]/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 [email protected]/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 [email protected]/java.lang.Class.getConstructor0(DynamicHub.java:3585)
at [email protected]/java.lang.Class.newInstance(DynamicHub.java:626)
Is there any incompatibility between Firebase Admin SDK and Native Image?
- 主要語言
- Java
- 星號
- 620
- 分支
- 305
- 平均合併
- 3 天 12 小時
- 30 天內合併 PR
- 12
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
firebase/firebase-admin-java 的其他 Issue
-
google-http-client-jackson2 cannot be excluded even when a JsonFactory is configured via FirebaseOptions可能已有人在做 @lahirumaramba 於 10 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 48/100
firebase/firebase-admin-java#1231 · 已指派 1 人 ·
維護者通常 4 天內回覆
-
[BUG] RemoteConfig unit tests fail in non-English (e.g., Korean) Locales due to Date Parsing可能已有人在做 @rathovarun1032 於 209 天前認領。 未關閉api: remoteconfig
firebase/firebase-admin-java#1196 · 1 則留言 · 已指派 2 人 ·
維護者通常 4 天內回覆
-
Auth list tenants is not pageable可能已有人在做 @siddharthmohan619-eng 於 214 天前認領。 未關閉
難度 3/5 1-2 天 新手友好度 45/100
firebase/firebase-admin-java#1192 · 3 則留言 ·
維護者通常 4 天內回覆
-
needs-triage type: feature request
難度 3/5 1-2 天 新手友好度 45/100
firebase/firebase-admin-java#1149 · 1 則留言 ·
維護者通常 4 天內回覆
-
[FR] Expose `link` / `link_android` in notifications for deep linking可能重新可做 @won-seoop 於 141 天前認領,目前沒有進行中的 PR。 未關閉needs-triage type: feature request
難度 5/5 一週以上 新手友好度 45/100
firebase/firebase-admin-java#1142 · 2 則留言 ·
維護者通常 4 天內回覆
查看 firebase/firebase-admin-java 的全部 Issue
相似的 Issue
-
[Bug] The producer summary counts an unreported client version as a second version and warns about a version mix可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 74/100
apache/rocketmq-dashboard#6110 ·
維護者通常 4 天內回覆
-
`Processing lsp` never exits and leaves orphaned processes可能已有人在做 @overcast302 今天認領。 未關閉bug
難度 2/5 1-3 小時 新手友好度 72/100
processing/processing4#1578 · 1 則留言 ·
-
難度 2/5 1-3 小時 新手友好度 72/100
apache/doris-flink-connector#707 ·
-
難度 2/5 1-3 小時 新手友好度 60/100
維護者通常 1 天內回覆
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched origins可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 72/100
維護者通常 1 天內回覆