- Notifications
You must be signed in to change notification settings - Fork0
myrical-app/myrical-v2
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project was bootstrapped withCreate React App.
- Firebase setup
- Authentication
- Database: Retrieve and push data
- Cloud Storage: Upload file and save to database
- Cloud Functions: Cloud Messaging, Message notification
- Create your Firebase Project in
http://console.firebase.google.com
. - Copy config in dashboard'sWeb Setup and paste to
firebase.js
. - Clone project and install dependencies.
> git clone > cd react-firebase> npm install
SeeFirebase Authentication docs.firebase.auth()
Sign-In method is usingGoogleAuthProvider
with a pop-up window. WhenComponentDidMount
was called,auth.onAuthStateChanged
will listen to current auth user state. When the user is logged-in, user state in the component will set.
SeeFirebase Authentication docs.firebase.database()
Initially created an objectguides
as our first collection to push our data. TheguidesRef
is the database reference for theguides
object in firebase.Pushing the new data will also add the current User id, who created the data.
SeeFirebase Storage docs.firebase.storage()
We have file input to accept images (png|gif|jpeg
),onChange
will upload the file first to the given storage ref and then get the file path and save tousers
in database.We can also listen to state changes while the file is uploading which we can display the percentage of the upload progress.
SeeCloud Functions for more details.Checkout theexamples of other functionsThe example here is creating message alert using cloud functions
Follow this steps to get started.
- Create a file named
firebase-messaging-sw.js
in public folder to serve it statically in the host.This file is ourService Worker for messaging. Follow thisguide.You can find yoursender id located at your projectsettings > cloud functions > sender id
- Create handler here for showing the notification in the device.
Create the function in
function/index.js
. See the file.Create file
request-messaging-permission
to notify new logged-in users if they want to allow notification.
- Apply this method during user login in the app.
- Check function logs in firebase console.
- InstallFirebase Tools globally. (You may need
sudo
here)
> npm install -g firebase-tools
- Login to firebase using this tool in CLI
> firebase login
- CD to your working project and initialize firebase.
> cd react-firebase> firebase init
- Configure firebase:
- Allow CLI features forDatabase,Functions,Hosting.
- Select your Firebase project to be used.
- Accept default rules to write on default file
database.rules.json
- Install dependencies.
- Choose a
build
name directory since we build our app. - SelectYes for configuring single app page. This is suitable also when app is using
react-router
. - Firebase initialization complete!
- Then we will build our app.
> npm build
- Deploy!
> firebase deploy
Access your running application to the givenHosting URL.
Important
- Make sure to rebuild your app if you made changes and want to deploy again.
- If you only edited the firebase-generated folder
functions/**
, you can just deploy by runningfirebase deploy --only functions
.