Skip to content

[Bug]: Firestore does not work on Deno Deploy #917

@sigmaxipi

Description

@sigmaxipi

Problem description

I can use Firebase's Firestore on local deno instances, but it fails on Deno Deploy.

Steps to reproduce

My code:

{
  "imports": {
    "@firebase-admin": "npm:firebase-admin@^11.0.0", // Using later versions causes problems with https://github.com/denoland/deno/issues/28566
    "@firestore": "npm:firebase-admin@^11.0.0/firestore"
  }
}
import admin from "@firebase-admin";
import { getFirestore } from "@firestore";

const serviceAccount = {
  "type": "service_account",

// This JSON comes from https://console.firebase.google.com/project/MY_PROJECT_NAME/settings/serviceaccounts/adminsdk

};
const app = admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
});

const db = getFirestore(app);
console.log("Firestore connected via service account.");

const docRef = db.collection("test-collection").doc("test");
const result = await docRef.get();
console.log(result.data()); // Should return useful data or undefined.

Expected behavior

Running locally works as expected:

> deno run --allow-env --allow-net  main.ts
Firestore connected via service account.
{ a: "b" }

But Deno Deploy fails:

> deployctl deploy  --include=. --entrypoint=main.ts
...
✔ Uploaded 1 new asset.
✖ Deployment failed.
error: The deployment failed: UNCAUGHT_EXCEPTION

TypeError: addressList.filter is not a function
    at file:///node_modules/.deno/@grpc+grpc-js@1.8.22/node_modules/@grpc/grpc-js/build/src/resolver-dns.js:167:50
    at Object.runMicrotasks (ext:core/01_core.js:692:26)
    at Array.processTicksAndRejections (ext:deno_node/_next_tick.ts:59:10)
    at eventLoopTick (ext:core/01_core.js:175:29)

Environment

Deno v2.5.6 and Deno Deploy Classic

Possible solution

No response

Additional context

The problematic code is a https://github.com/grpc/grpc-node/blob/master/packages/grpc-js/src/resolver-dns.ts#L193

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions