-
-
Notifications
You must be signed in to change notification settings - Fork 15
Setup
Open Firebase and create a new project
- In Firebase console, open Firebase Settings
- Go to Your apps section
- Select Web App icon
- Fill the App nickname field
- Check Also set up Firebase Hosting for this app checkbox
- Press Register app
- Copy firebaseConfig values , as they will be required in Cloud Build section
- Press Next
- Press Next again
- Copy the Hosting Site ID, as it will be required in Cloud Build section
- Press Continue to console
Firebase makes Authentication easier for Localess. Localess needs to identify identity of the users to provide custom experience and keep the data secure.
Login by Email and Password is enabled by default.
Enable Google as a sign-in method in the Firebase console:
- In the Firebase console, open the Auth section.
- On the Sign in method tab, enable the Google sign-in method
- Click Save.
In case you limit access only to organization domain, please fill the domain name in Cloud Build
To sign in users using Microsoft accounts (Azure Active Directory and personal Microsoft accounts), you must first enable Microsoft as a sign-in provider for your Firebase project:
- In the Firebase console, open the Auth section.
- On the Sign in method tab, enable the Microsoft provider.
- Add the Client ID and Client Secret from that provider's developer console to the provider configuration:
- To register a Microsoft OAuth client, follow the instructions in Quickstart: Register an app with the Azure Active Directory v2.0 endpoint. Note that this endpoint supports sign-in using Microsoft personal accounts as well as Azure Active Directory accounts. Learn more about Azure Active Directory v2.0.
- When registering apps with these providers, be sure to register the
*.firebaseapp.com
domain for your project as the redirect domain for your app.
- Click Save.
Open Hosting tab to create a default one
Open Firestore tab to create a default one
Add IAM rights to Cloud Builder. Article from official site here.
The CloudBuild account (@cloudbuild.gserviceaccount.com) should have next Roles in IAM
- API Keys Admin
- Cloud Build Service Account
- Cloud Functions Developer
- Firebase Admin
- Service Account User
- Cloud Functions API
- Artifact Registry API
- Cloud Run API
- Eventarc API
- Cloud Translation API
You will need first to create a Firebase Community Builder. Details how to do that you can find here on official GCP site.
The cloudbuild.yaml
is already preconfigured in the source code.
To automatically deploy the latest changes, you will need to create Cloud Build Trigger :
- Open Cloud Build Triggers
- On the Create trigger page, enter the following settings:
- Enter a name for your trigger.
- Select the repository event : Push to a branch.
- Select the repository :
https://github.com/Lessify/localess
or forked version - Specify the
main
branch that will start your trigger. - Select next for Configuration:
- Type : Cloud Build configuration file (YAML or JSON)
- Location: Repository
- In Advanced you will need to add next Substitution variables, with their related Firebase values:
- _LOCALESS_FIREBASE_PROJECT_ID - firebase project id
- _LOCALESS_FIREBASE_APP_ID - firebase app id
- _LOCALESS_FIREBASE_STORAGE_BUCKET - firebase storage bucket
- _LOCALESS_FIREBASE_API_KEY - firebase api key
- _LOCALESS_FIREBASE_AUTH_DOMAIN - firebase auth domain
- _LOCALESS_FIREBASE_MESSAGING_SENDER_ID - firebase messaging sender id
- _LOCALESS_FIREBASE_MEASUREMENT_ID - firebase measurement id
- _LOCALESS_AUTH_CUSTOM_DOMAIN - sign in custom domain, you can use organization domain (for example, lessify.io). If not provided it will allow all domains.
- _LOCALESS_AUTH_PROVIDERS - Auth providers separated by comma. Available values : GOOGLE and MICROSOFT
- Click Create to save your build trigger.
functions: missing required API cloudfunctions.googleapis.com. Enabling now...
Enable Cloud Functions API in Marketplace.
Check Cloud API's to be enabled section.
artifactregistry: missing required API artifactregistry.googleapis.com. Enabling now...
Enable Artifact Registry API in Marketplace.
Check Cloud API's to be enabled section.
functions: missing required API run.googleapis.com. Enabling now...
Enable Cloud Run API in Marketplace.
Check Cloud API's to be enabled section.
functions: missing required API eventarc.googleapis.com. Enabling now...
Enable Eventarc API in Marketplace.
Check Cloud API's to be enabled section.
functions: Failed to verify the project has the correct IAM bindings for a successful deployment.
functions: You can either re-run `firebase deploy` as a project owner or manually run the following set of `gcloud` commands:
functions: `gcloud projects add-iam-policy-binding PROJECT_NAME --member=serviceAccount:[email protected] --role=roles/pubsub.publisher`
functions: `gcloud projects add-iam-policy-binding PROJECT_NAME --member=serviceAccount:[email protected] --role=roles/iam.serviceAccountTokenCreator`
functions: `gcloud projects add-iam-policy-binding PROJECT_NAME --member=serviceAccount:[email protected] --role=roles/run.invoker`
functions: `gcloud projects add-iam-policy-binding PROJECT_NAME --member=serviceAccount:[email protected] --role=roles/eventarc.eventReceiver`
Error: We failed to modify the IAM policy for the project. The functions deployment requires specific roles to be granted to service agents, otherwise the deployment will fail.
Fallow the provided instructions. You can execute them in the project console.
Error: The following functions are found in your project but do not exist in your local source code:
importLocaleJson(us-central1)
You can fix it by deleting the function from one of next places :
- Google Cloud Platform Console -> Cloud Functions
- Google Cloud Platform Console -> Cloud Run
- Firebase Console -> Functions
Cloud Translation API has not been used in project {projectId} before or it is disabled
Enable Cloud Translation API in Marketplace.
Check Cloud API's to be enabled section.
For the first time you will need to go to your project url under the path '/setup'
:
<firebase-project-id>.web.app/setup
<firebase-project-id>.firebaseapp.com/setup