googleapis / googleapis/google-cloud-java

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

Abierto
#11,979 1 comentario 0 reacciones 0 asignados Ver en GitHub
api: datastore priority: p3 type: bug
Lenguaje dominante
Java
Estrellas
2.1k
Forks
1.2k
Merge medio
1 d 23 h
PR fusionados (30 d)
154

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.