/expo-router-firebase-starter

Expo starter project with router and firebase

Primary LanguageTypeScript

Expo Starter with Router

CI

The expo template generated with dooboo-cli.

We believe that the fastest way to build the app is using Expo. You can create app even more easily with the cli tool dooboo-cli.

Stacks used

Quick News

  • In default, dooboo-ui ui framework is preinstalled in the project. Hope you like it šŸ§”.

Development Guide

Expo Auth Session

In simpler terms, starting from version 48 of the Expo, there's an issue with the package called expo-auth-session when used in an app that is managed by Expo (for details, see this issue link). To avoid this problem, it's a good idea to use expo-dev-client.

Expo Dev Client

To elaborate further, Expo offers a feature where you can create a special kind of build for development purposes. This is helpful because it allows you to use additional pieces of code (modules) written for React Native, which usually wouldn't work in an Expo-managed app without going through some complex steps or taking on the responsibility of handling the native code yourself. The expo-dev-client helps to get around these issues, making it easier for you to work with external React Native modules in a more straightforward way.

You can create the dev client by running the script

eas:dev:ios
// or
npx eas build --profile development --platform ios

For android,

eas:dev:android
// or
eas build --profile development --platform android

In case your build process fails due to the presence of google-services.json and GoogleService-Info.plist files in the .gitignore file, you can try a temporary fix. Simply remove these files from .gitignore and re-run the build commands. Once the build succeeds, make sure to add them back to .gitignore. This is important because these files shouldn't be part of the version control.

After the development build is finished, head to Expo's website to download it. If you are working on an iOS app, you can find guidance on how to install your build on simulators through this link. For Android, check out this link which provides steps for creating APKs for emulators and devices.

Firebase setting

In order to use this project, please follow the configuration guide below

  1. Create .env file
cp .env.sample .env
  1. Create a new firebase project and add following values
  • apiKey
  • authDomain
  • projectId
  • storageBucket
  • messagingSenderId
  • appId
  • measurementId

you can find these options in

firebase -> [your project name] -> web app -> project setting
  1. Add Google Client id
  • web
  • ios
  • android
  1. Add Facebook app id (developer.facebook.com/apps/)