@@ -465,7 +465,7 @@ export function onChangedOperation<Ref extends string>(
465465 // wrap the handler
466466 const func = ( raw : CloudEvent < unknown > ) => {
467467 const event = raw as RawRTDBCloudEvent ;
468- const instanceUrl = `https:// ${ event . instance } . ${ event . firebasedatabasehost } ` ;
468+ const instanceUrl = getInstance ( event ) ;
469469 const params = makeParams ( event , pathPattern , instancePattern ) as unknown as ParamsOf < Ref > ;
470470 const databaseEvent = makeChangedDatabaseEvent ( event , instanceUrl , params ) ;
471471 return wrapTraceContext ( handler ) ( databaseEvent ) ;
@@ -492,7 +492,7 @@ export function onOperation<Ref extends string>(
492492 // wrap the handler
493493 const func = ( raw : CloudEvent < unknown > ) => {
494494 const event = raw as RawRTDBCloudEvent ;
495- const instanceUrl = `https:// ${ event . instance } . ${ event . firebasedatabasehost } ` ;
495+ const instanceUrl = getInstance ( event ) ;
496496 const params = makeParams ( event , pathPattern , instancePattern ) as unknown as ParamsOf < Ref > ;
497497 const data = eventType === deletedEventType ? event . data . data : event . data . delta ;
498498 const databaseEvent = makeDatabaseEvent ( event , data , instanceUrl , params ) ;
@@ -505,3 +505,10 @@ export function onOperation<Ref extends string>(
505505
506506 return func ;
507507}
508+
509+ function getInstance ( event : RawRTDBCloudEvent ) {
510+ const emuHost = process . env . FIREBASE_DATABASE_EMULATOR_HOST ;
511+ return emuHost
512+ ? `http://${ emuHost } /?ns=${ event . instance } `
513+ : `https://${ event . instance } .${ event . firebasedatabasehost } ` ;
514+ }
0 commit comments