firebase / firebase/firebase-admin-java

Firebase Auth Emulator interferes with Firebase Storage

未关闭
#769 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
api: auth
主要语言
Java
星标
620
派生
305
平均合并
3 小时 23 分钟
30 天内合并 PR
1

描述

### [READ] Step 1: Are you in the right place?

* For issues or feature requests related to __the code in this repository__
file a Github issue.
* If this is a __feature request__ make sure the issue title starts with "FR:".
* For general technical questions, post a question on [StackOverflow](http://stackoverflow.com/)
with the firebase tag.
* For general Firebase discussion, use the [firebase-talk](https://groups.google.com/forum/#!forum/firebase-talk)
google group.
* For help troubleshooting your application that does not fall under one
of the above categories, reach out to the personalized
[Firebase support channel](https://firebase.google.com/support/).

### [REQUIRED] Step 2: Describe your environment

* Operating System version: Windows 11
* Firebase SDK version: ____
* Library version: 9.1.1
* Firebase Product: auth, storage

### [REQUIRED] Step 3: Describe the problem

We access the Auth and Storage services in our project using this Java Admin SDK.
Recently, we wanted to make use of the Auth Emulator for development purposes. However, after enabling the emulator by setting the `FIREBASE_AUTH_EMULATOR_HOST` environment variable, the Storage calls stop working and return 401 Unauthorized.

It seems that by setting the `FIREBASE_AUTH_EMULATOR_HOST` environment variable, the [whole project enters an emulator mode](https://github.com/firebase/firebase-admin-java/blob/e8ec68c97929972acdbe05b79b5ea18f077a08a2/src/main/java/com/google/firebase/auth/internal/Utils.java#L27) and [uses emulator credentials](https://github.com/firebase/firebase-admin-java/blob/master/src/main/java/com/google/firebase/ImplFirebaseTrampolines.java#L47). The emulator credentials should be made to only apply to Auth calls.

Furthermore, I could not even find a way to create two instances of FirebaseApps (one with the emulator enabled and one disabled), since the check for `FIREBASE_AUTH_EMULATOR_HOST` is static and shared program-wide.

#### Steps to reproduce:

Use Auth and Storage in a production project. Enable `FIREBASE_AUTH_EMULATOR_HOST` and Storage stops working.

贡献指南

打开贡献指南

调研方向

先阅读 src/main/java/com/google/firebase/auth/internal/Utils.java 和 src/main/java/com/google/firebase/ImplFirebaseTrampolines.java,尤其关注 FIREBASE_AUTH_EMULATOR_HOST 和模拟器凭据的处理。启用 Auth 和 Storage 后一起复现该问题,然后验证 Storage 调用仍保持授权状态,而模拟器凭据仅应用于 Auth;同时检查不同的 FirebaseApp 实例是否可以使用不同的模拟器配置。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
authentication, backend
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。