Search code examples
firebasegoogle-cloud-firestore

Firebase JS SDK `findNearest` function for Firestore Vector search


I see that Firestore backend libraries have a findNearest query in a collection, but I can't find the same option in the client-side library. Is it possible at all?

I was already able to store the vector values in Firestore with FieldValue.vector, now I just need a way to query them by proximity.

https://firebase.google.com/docs/firestore/vector-search#make_a_nearest-neighbor_query


Solution

  • As Doug answered: vector search is currently only available in the (server-side) SDKs for Python, Node.js, Go, and Java. It is not currently available in any of the client-side SDKs.

    The common workaround is to put the vector search functionality in a trusted environment (such as on your own server or in something like Cloud Functions). Step-by-step:

    1. The client writes a vector search request to Firestore
    2. The server/cloud function triggers
    3. The server/cloud function performs the actual vector search on Firestore
    4. The server/cloud function writes the result back Firestore
    5. The client picks up that response and shows it