Question: I want to test locally my firebase functions.
These functions make firestore queries.

So i start the emulator `firebase emulators:start` and in my client i use `firebase.functions().useFunctionsEmulator('http://localhost:5001')`.

My functions work well when i call them in my client. I can read/write data inside the firestore emulator.

The problem :

I want to read the firestore emulator data directly inside my client, like :

```
firebase.firestore().collection('tests').get().then(tests => {
    console.log( tests.docs.map(test=>test.map) )
})

```

but i can't find how to set the firestore emulator inside my client.

here what i tried:

1) Firestore setting

```
firebase.firestore().settings({
    host:'http://localhost:8080',
    ssl:false
})

```

result :

i get `@firebase/firestore: Firestore (6.3.5): Could not reach Cloud Firestore backend. Backend didn't respond within 10 seconds.` inside my client console.

The http request returns 'Not found'

2) Set the emulator url inside my firebaseConfig

```
var firebaseConfig = {
    // ...
    databaseURL: "http://localhost:8080",
    // ...
}

firebase.initializeApp(firebaseConfig)

```

in this case, the remote server (<https://firestore.googleapis.com.>.) is requested.

So i want to setup one of these two cases :

1) Using the remote firestore inside my functions emulators

OR

2) Using the local firestore emulator inside my client code.

Anyone has already done this ?

Answer: 
I had the same problem too. I found the following example, which looks like its still work in progress:

<https://github.com/firebase/quickstart-nodejs/tree/master/firestore-emulator/browser-quickstart>

They didn't use `@firebase/testing` directly in their example. When I did try to embed `@firebase/testing` in my webpack code, it tries to connect via `grpc`, which attempts to do `fs.existsSync`, which doesn't exist in `webpack` browser context. They prefer to enable the functionality via [WebChannel](https://google.github.io/closure-library/api/goog.net.WebChannel.html) instead.

~~Some caveats as of Nov 2019:~~

* ~~You might see errors in the console connecting to localhost:8080 with the X-Goog-API. I am not sure what is that for.~~
* ~~You might get the following error: `@firebase/firestore: Firestore (6.3.5): Could not reach Cloud Firestore backend. Backend didn't respond within 10 seconds.`~~

~~Despite having those errors, my functions were still able to connect to the local firestore.~~

~~Versions I had at time I was testing:~~

* firebase-js-sdk 6.3.1
* firebase-tools 7.3.1

Update 11/18:

* I raised an issue within `quickstart-nodejs` github and it seems I just needed to use the latest versions of everything.

Versions:

* firebase-js-sdk v7.4.0
* firebase-tools v7.8.0
**Define the FIRESTORE\_EMULATOR\_HOST environment variable**

If you are using a library that supports the FIRESTORE\_EMULATOR\_HOST environment variable, run:

> 
> export FIRESTORE\_EMULATOR\_HOST=localhost:8080
> 
> 
> 

or just add *FIRESTORE\_EMULATOR\_HOST=localhost:8080* to your .env file