firebase / firebase-admin-node

Firebase Admin Node.js SDK

Home Page:https://firebase.google.com/docs/admin/setup

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bun.sh grpc-js :: undefined is not an object (evaluating 'error.stack.split') :: what am I missing?

vincekruger opened this issue · comments

[REQUIRED] Step 2: Describe your environment

  • Operating System version: macOS 13.5.2 (22G91)
  • Firebase SDK version: 11.10.1
  • Firebase Product: firestore
  • Node.js version: 18.17.1
  • NPM version: 8.19.2

[REQUIRED] Step 3: Describe the problem

I'm testing out bun and I can't do a basic get() on a collection. What am I missing?

Steps to reproduce:

index.ts

require('dotenv').config()

import { initializeApp } from 'firebase-admin/app'
initializeApp()
import { getFirestore } from 'firebase-admin/firestore'
export const db = getFirestore()
db.collection('category').get()

Run

bun index.ts

[0.05ms] ".env"
29 | const CALL_INVOCATION_TRANSFORMER_SYMBOL = Symbol();
30 | function isFunction(arg) {
31 |     return typeof arg === 'function';
32 | }
33 | function getErrorStackString(error) {
34 |     return error.stack.split('\n').slice(1).join('\n');
               ^
TypeError: undefined is not an object (evaluating 'error.stack.split')
      at getErrorStackString (/path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client.js:34:11)
      at onReceiveStatus (/path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client.js:356:40)
      at onReceiveStatus (/path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:323:177)
      at /path/node_modules/google-gax/node_modules/@grpc/grpc-js/build/src/resolving-call.js:94:74
      at processTicksAndRejections (:1:2602)

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

I got this issue as well

I thought Bun wasn't going to work with grpc yet because of missing HTTP2 support?

Might be related to your issue.

Hope they support it soon though!

I got the same issue. Thank goodness I googled the error since the stack trace didn't point to the line of code throwing the error.

I'm getting another bun error, not 100% sure if it's related:
Import named 'firestore' not found in module '/***/node_modules/firebase-admin/lib/index.js'.

I'm having this exact same issue as well when trying to use the @google-analytics/admin package just by doing a simple report await analyticsDataClient.runReport({...})

Firebase Admin SDK requires a full Node.js runtime and currently not supported on other alternative JS environments.

Firebase Admin SDK requires a full Node.js runtime and currently not supported on other alternative JS environments.

Yeah seems to me like this should be a bun.js issue and not here. They're the ones 'promising' full node compability.

Agreed. There is a discussion ongoing there already regarding this.
oven-sh/bun#4746

Ditto here... unable to use the firebase-admin SDK for firestore.

I'd want to use bun.sh but not being able to use firebase-admin really is blocking

Any ideas on when this might be fixed. I'm trying to use the Google Vision API but it seems like this is a problem with it to. This has totaly blocked the development of a big feature for us.

Just because this is first on google, but please do checkout the discussion on bun's repo oven-sh/bun#4746

TL;DR: Error.prototype.stack = ''; early in the program should fix this. (prevents the error but wont restore your stack trace, try-catch it yourself)

If you’re curious here is a nice rabbit hole to go down

Things are improving (with improved http2/gRPC support in bun.sh 1.0.14) but firestore snapshots are still hanging.

commented

Still experiencing this issue using the google pubsub emulator on bun 1.0.15

same for @google-cloud/firestore package, version 1.0.18