googleapis / googleapis/google-cloud-java

[java-datastore] Datastore: When using grpc as transport with an emulator, requests are still sent to the google service

Aperta
#11,979 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
api: datastore priority: p3 type: bug
Lingua principale
Java
Stelle
2.1k
Fork
1.2k
Merge medio
1g 23h
PR unite (30g)
154

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.