Guglie
Guglie

Reputation: 2451

How to set functions region for React Native Firebase

I have a react native app with react-native-firebase and I'm trying to run a callable https firebase function which is deployed to a custom region.

I've read that firebase.app().functions("MY-REGION") so I tried the following:

import { firebase } from "@react-native-firebase/database"
import functions from "@react-native-firebase/functions"

firebase.app().functions("MY-REGION")

But If I run that I get this error:

Error: You attempted to use 
"firebase.app('[DEFAULT]').functions" but this
module could not be found.

Ensure you have installed and imported the
'@react-native-firebase/functions' package

The functions package is installed.

If I remove the @react-native-firebase/functions import the error stays the same.

How can I specify the region for firebase https functions in react-native-firebase?


More attempts:

firebase.initializeApp({
   ...options
})

firebase.app().functions("MY-REGION")

And that says Error: Firebase App named '[DEFAULT]' already exists

firebase.initializeApp({
   ...options
}, "APP_NAME")

firebase.app("APP_NAME").functions("MY-REGION")

Gives Error: No firebase App 'APP_NAME' has been created - call firebase.initializeApp()


I hope I'm missing something trivial.

Upvotes: 4

Views: 1643

Answers (1)

Guglie
Guglie

Reputation: 2451

A solution is to change the functions import from import functions from "..." to import "...":

import { firebase } from "@react-native-firebase/database"
import "@react-native-firebase/functions" // <--

// call a https firebase function
firebase.app().functions("MY-REGION").httpsCallable('MyFunction')()

Note that MY-REGION should be set to the region shown in the firebase functions dashboard for the selected httpsCallable function.

The fix I found was indeed quite trivial...
I've shared it here so it can be useful for others, but better solutions are welcome!

Upvotes: 10

Related Questions