All Projects → jlengrand → elm-firebase

jlengrand / elm-firebase

Licence: MIT License
A simple repository to show Elm integration with Firebase using ports - WIP

Programming Languages

elm
856 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to elm-firebase

capacitor-firebase-authentication
⚡️ Capacitor plugin for Firebase Authentication.
Stars: ✭ 67 (+67.5%)
Mutual labels:  firebase-auth
Dracker
An iOS and React App to track debt and send/receive payments.
Stars: ✭ 22 (-45%)
Mutual labels:  firebase-auth
firebase-tutorial
This repo contains the code for the youtube playlist about React.js and Firestore. Covered are setting up Firesore in a React-App and much more.
Stars: ✭ 33 (-17.5%)
Mutual labels:  firebase-auth
Friday
🎓 Friday - Your Personal Class Manager Assistant, It'll never let you miss another assignment deadline or upcoming test.
Stars: ✭ 67 (+67.5%)
Mutual labels:  firebase-auth
Recess
🤓 Recess - A Social Media Platform for students to share their experience/knowledge they gained in their free time. 🧐
Stars: ✭ 43 (+7.5%)
Mutual labels:  firebase-auth
ionic2-firebase-hackathon-starter
A hackathon starter for ionic2 using firebase, already has user authentication, reset password, google login etc
Stars: ✭ 34 (-15%)
Mutual labels:  firebase-auth
firebase-auth-demo
Simple set up using firebase, Vue and Vuex
Stars: ✭ 22 (-45%)
Mutual labels:  firebase-auth
react-fire-auth-example
Simple Email and Google Auth with React and Firebase
Stars: ✭ 53 (+32.5%)
Mutual labels:  firebase-auth
open-feedback
Open Feedback is an opened SaaS platform destined to organisers to gather feedback from users. OpenFeedback
Stars: ✭ 67 (+67.5%)
Mutual labels:  firebase-auth
voting system app
E-voting system based on blockchain technology, with ethereum, flutter/dart
Stars: ✭ 59 (+47.5%)
Mutual labels:  firebase-auth
firebase-photos
✅ 100% Firebase-Powered Android App, Instagram Clone App
Stars: ✭ 22 (-45%)
Mutual labels:  firebase-auth
city-cab
An open source flutter taxi - app for learning purpose(Provider & Bloc) using firebase as backend/server
Stars: ✭ 68 (+70%)
Mutual labels:  firebase-auth
FirebaseChatRoom
This application shows how to build (in Swift4) a simple Chat room where users can register, login, send messages to other users etc using Firebase. If you are a developer who has got an interesting idea but could not find a backend developer to take the idea to a product level, then do check out this project as an introductory course to Firebas…
Stars: ✭ 18 (-55%)
Mutual labels:  firebase-auth
ionicfirebaseauth
Exemplo de alguns tipos de autenticação com Ionic 2 e Firebase
Stars: ✭ 18 (-55%)
Mutual labels:  firebase-auth
FirebaseChatApp
A Chat app built on firebase features such as firebase-ui,database,storage and cloud messaging
Stars: ✭ 20 (-50%)
Mutual labels:  firebase-auth
Transact
A transaction management android app which allows you to verify records from both parties before addition.
Stars: ✭ 21 (-47.5%)
Mutual labels:  firebase-auth
todo-app
An Adobe AIR mobile app that uses the Firebase V3 API to save users to do's lists and manage their accounts.
Stars: ✭ 19 (-52.5%)
Mutual labels:  firebase-auth
oneroof
Learn about firebase crud operation authentication, animation
Stars: ✭ 15 (-62.5%)
Mutual labels:  firebase-auth
Flutter-firestore-auth
Flutter mobile app with firestore authentication including Email and Social auth.
Stars: ✭ 95 (+137.5%)
Mutual labels:  firebase-auth
E-commerceCustomerFYP
Android E-commerce Platform. Allow customer to buy product, chat, feedback rating, make payment to retailer
Stars: ✭ 41 (+2.5%)
Mutual labels:  firebase-auth

Elm Firebase

A simple repository to show Elm integration with Firebase using ports. You can read more about it in my short blog post introducing it.

You can demo the app here.

This demo runs on Elm 0.19.

Getting started

To run this app locally, you will need to :

Setting up the Database and Auth

  • Go to the Firebase console and create a new project
  • Setup Google Signin in the Authentication part.

How to setup Google Sign-In

  • Create a new Cloud Firestore in locked mode
  • Change the Firestore rules so that only logged requests can be written / read.
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
		match /users/{userId}/messages/{messageId} {
      allow create, read, update, delete: if request.auth.uid == userId;
    }
  }
}

Using those rules, each user will get its own space, with a messages store inside it. So this doubles down as database setup, and security.

That should be it! If needed, test your rules using the Simulator.

Running the code

To run the code, only a few steps are needed :).

  • Clone the repo : $ git clone [email protected]:jlengrand/elm-firebase.git
  • Move in the repo : $ cd elm-firebase
  • Install necessary dependencies. The easiest way is probably to run $ npm install.
  • You will need to create a .env file in your root folder to let the app know about your Firestore project. The .env file looks like this :
ELM_APP_API_KEY="AIzaSyCjjxds-Qrk2Vsjj8qktPuzEgwerggeg"
ELM_APP_AUTH_DOMAIN="test-elm-login-elererge.firebaseapp.com"
ELM_APP_DATABASE_URL="https://test-elm-login-elererge.firebaseio.com"
ELM_APP_PROJECT_ID="test-elm-login-elererge"
ELM_APP_STORAGE_BUCKET=""
ELM_APP_MESSAGING_SENDER_ID="916631954567"
ELM_APP_APP_ID="1:916631954567:web:2a755b103fe23041"

The required information is the same as described in the Firebase config object. The easiest way is to go to the settings page of your project, and scroll down until you see the javascript snippet. It will contain all the information needed.

Note : All the informationm in the .env file is not secret, and can be shared. In fact, it will be accessible to anyone using your app via the console. This is not a problem!

Settings page of Firebase project

  • Run the app : $ npm start. You will be able to test the app at http://localhost:3000!

Deploying

If for some reason you want to deploy the code somewhere, you can run $ npm run build. Now you simply have to serve the content of the build folder, and you're done!

Contributing

Contributions are more than welcome ! You can pick one of the issues of the list or simply create your own :).

Authors

Happy hacking!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].