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
100
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
470
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
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
660
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
290
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
170
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
120
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
470
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
960
信頼性の目標を誰も求めてない
shubox
0
490
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
100
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
120
AIエージェント時代のコードレビューを設計する
nogu66
6
2.6k
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Test your architecture with Archunit
thirion
2
2.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
ラッコキーワード サービス紹介資料
rakko
1
4.8M
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
820
Faster Mobile Websites
deanohume
310
32k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Between Models and Reality
mayunak
4
450
Utilizing Notion as your number one productivity tool
mfonobong
4
580
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 ✌