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
95
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
FDEが実現するAI駆動経営の現在地
gonta
2
280
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
150
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
340
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
650
React本体のコードリーディング
high_g_engineer
1
140
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
150
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
220
Android CLI
fornewid
0
220
yield再入門 #phpcon
o0h
PRO
0
1k
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
230
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
170
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
Featured
See All Featured
Mind Mapping
helmedeiros
PRO
1
310
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
380
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
240
A designer walks into a library…
pauljervisheath
211
24k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Designing Experiences People Love
moore
143
24k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
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 ✌