googleapis / googleapis/google-cloud-java
[java-datastore] Datastore: When using grpc as transport with an emulator, requests are still sent to the google service
- 主要言語
- Java
- スター
- 2.1k
- フォーク
- 1.2k
- 平均マージ
- 1日 23時間
- マージ済み PR(30日)
- 154
説明
2. OS type and version: google-cloud-datastore 2.33.0
4. Java version: openjdk 25
#### Steps to reproduce
1. Start a firestore emulator in datastore mode `gcloud emulators firestore start --database-mode=datastore-mode --host-port "localhost:8082"`
2. Try to connect to it with grpc
#### Code example
```java
DatastoreOptions.newBuilder()
.setHost("localhost:8082")
.setProjectId("project")
.setTransportOptions(GrpcTransportOptions.newBuilder()
.build())
.build()
.getService()
```
The requests will go to the google apis instead of the emulator.
I think the problem is within `com.google.cloud.datastore.spi.v1.GrpcDatastoreRpc`
The lines https://github.com/googleapis/java-datastore/blob/83fb5cffaa091766eb0827921f2549d3e6d98363/google-cloud-datastore/src/main/java/com/google/cloud/datastore/spi/v1/GrpcDatastoreRpc.java#L82-L89 override the channelprovider unconditionally. I think they should only do that, when `isEmulator(datastoreOptions)` is false
コントリビューションガイド
評価
この issue はまだ評価されていません。