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
300
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
89
Type safe CSS with Reason
cironunes
0
150
What I've learned building automated docs for Ansarada's design system
cironunes
0
96
Beyond ng new
cironunes
2
240
Animate your Angular apps
cironunes
0
460
Sweet Angular, good forms never felt so good
cironunes
0
100
Sweet Angular, good forms never felt so good
cironunes
0
320
Progressive Angular apps
cironunes
3
940
Angular: Um framework. Mobile & desktop.
cironunes
1
610
Other Decks in Programming
See All in Programming
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
180
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
590
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
560
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
260
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.6k
AIで効率化できた業務・日常
ochtum
0
140
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
さぁV100、メモリをお食べ・・・
nilpe
0
150
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
360
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
Building the Perfect Custom Keyboard
takai
2
800
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
210
Facilitating Awesome Meetings
lara
57
7k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Context Engineering - Making Every Token Count
addyosmani
9
970
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
Docker and Python
trallard
47
3.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Raft: Consensus for Rubyists
vanstee
141
7.5k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
Writing Fast Ruby
sferik
630
63k
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 ✌