Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firebase & Angular
Search
Ciro Nunes
August 10, 2016
Programming
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firebase & Angular
Demo:
http://github.com/cironunes/quote-of-the-day
Ciro Nunes
August 10, 2016
More Decks by Ciro Nunes
See All by Ciro Nunes
Rust Front-end with Yew
cironunes
0
98
Type safe CSS with Reason
cironunes
0
150
What I've learned building automated docs for Ansarada's design system
cironunes
0
100
Beyond ng new
cironunes
2
250
Animate your Angular apps
cironunes
0
460
Sweet Angular, good forms never felt so good
cironunes
0
110
Sweet Angular, good forms never felt so good
cironunes
0
320
Progressive Angular apps
cironunes
3
950
Angular: Um framework. Mobile & desktop.
cironunes
1
610
Other Decks in Programming
See All in Programming
仕様駆動開発の消費期限
watany
20
9k
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
380
My Marp Sample
sinoue0108
0
120
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
1
2k
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
380
バグを直したら useEffect が消えた
colorful12
3
700
Dockerfile CMD for Node.js
grazie1999
0
120
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
220
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
280
AIの中の人になってみる
htkym
0
120
「人を評価する AI」の設計と実装
ryoyanara
0
240
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
360
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
310
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
560
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Mind Mapping
helmedeiros
PRO
1
330
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
940
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Thoughts on Productivity
jonyablonski
76
5.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
None
@cironunesdev CIRO NUNES
None
Create and deploy TODAY WE WILL AN APP using Firebase
& Angular 2
MINUTES ! 60
http://super-quote-of-the-day.firebaseapp.com
None
None
None
None
None
None
None
None
1. Creating the app and uploading images 3. Deploying the
app 2. Exploring the realtime database
CONSOLE
None
STORAGE
None
1. Creating the app and uploading images 3. Deploying the
app 2. Exploring the realtime database
REALTIME DATABASE
None
None
1. Creating the app and uploading images 3. Deploying the
app 2. Exploring the realtime database
CLI
~ $ npm install -g firebase-tools CLI
~ $ npm install -g firebase-tools CLI ~ $ firebase
login
~ $ npm install -g firebase-tools CLI ~ ~ $
firebase init # start a new project
~ $ npm install -g firebase-tools CLI ~ ~ $
firebase init ~ $ firebase deploy
HOSTING
None
2.0-RC6
1. Overview of main features 3. Implementing authentication 2. Integrating
with Firebase
DATA BINDING http://jsbin.com/hayiyuyeve/edit?html,js,output
DATA BINDING http://jsbin.com/hayiyuyeve/edit?html,js,output
DATA BINDING http://jsbin.com/hayiyuyeve/edit?html,js,output
<input type="text" id="message-field"> <h2>Hello, <span id="message-text"></span><h2> DATA BINDING http://jsbin.com/hayiyuyeve/edit?html,js,output
<input type="text" id="message-field"> <h2>Hello, <span id="message-text"></span><h2> var $messageField = document.querySelector('#message-field')
var $messageText = document.querySelector('#message-text') $messageField.value = 'Ciro' $messageText.innerText = 'Ciro' $messageField.addEventListener('keyup', function(e) { $messageText.innerText = e.target.value }, false) DATA BINDING http://jsbin.com/hayiyuyeve/edit?html,js,output
DATA BINDING @Component({ selector: 'my-greeting', template: ` <input type="text" [(ngModel)]="hero.name">
<h2>Hello, {{hero.name}}</h2> `, }) export class Greeting { constructor() { this.hero = { name: 'Ciro' } } } http://plnkr.co/edit/MGnF3Ta5IOPYYAyXjFpl?p=preview
DATA BINDING DEPENDENCY INJECTION DIRECTIVES COMPONENTS ROUTER AHEAD OF TIME
COMPILATION FORMS TESTABILITY {
1. Overview of main features 3. Implementing authentication 2. Integrating
with Firebase
None
None
~ $ npm i -g angular-cli@webpack
~ $ npm i -g angular-cli@webpack ~ $ ng new
quote-day
~ $ npm i -g angular-cli@webpack ~ ~ $ ng
serve
~ $ npm i -g angular-cli@webpack ~ ~ ~ $
ng test
~ $ npm i -g angular-cli@webpack ~ ~ ~ ~
$ ng build --prod
"AngularFire2"
~ $ npm i —-save angularfire2 firebase
import { AngularFireModule } from 'angularfire2';
import { AngularFireModule } from 'angularfire2'; ... @NgModule({ imports: [
AngularFireModule.initializeApp( firebaseConfig, firebaseAuthConfig ) ] })
const firebaseConfig = { apiKey: "...", authDomain: "...", databaseURL: "...",
storageBucket: "..." };
const firebaseConfig = { apiKey: "...", authDomain: "...", databaseURL: "...",
storageBucket: "..." }; const firebaseAuthConfig = { provider: AuthProviders.Facebook, method: AuthMethods.Popup };
quotes: FirebaseListObservable<any>; constructor(private af: AngularFire) { this.quotes = this.af.database() .list('quotes');
}
quotes: FirebaseListObservable<any>; constructor(private af: AngularFire) { this.quotes = this.af.database() .list('quotes');
} <ul> <li *ngFor="let quote of quotes | async"> {{quote.message}} </li> </ul>
1. Overview of main features 3. Implementing authentication 2. Integrating
with Firebase
AUTH
None
user = null; constructor(private af: AngularFire) { this.af.auth .subscribe(user =>
{...}); }
user = null; constructor(private af: AngularFire) { this.af.auth .subscribe(user =>
{...}); } login() { this.af.auth.login(); } logout() { this.af.auth.logout(); }
github.com/cironunes/quote-of-the-day GET THE CODE
DANKE SCHÖN @cironunesdev ✌