googleapis / googleapis/google-cloud-java

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

Ouverte
#11,979 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
api: datastore priority: p3 type: bug
Langage dominant
Java
Étoiles
2.1k
Forks
1.2k
Merge moyen
1 j 23 h
PR mergées (30 j)
154

Description

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

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.