如何使用 ionic 2 / angular 2 和 typescript 设置 firebase
how to set up firebase with ionic 2 / angular 2 and typescript
正在从 ionic 1 过渡到 ionic 2,并且很好奇如何使用他们的 typescript 示例设置类似 firebase import * as Firebase from 'somewhere/foo/';
的东西。
bower是在ionic中安装js依赖的标准方式吗
2 或者我应该使用其他构建 chain/tool 来添加
类似 Firebase 的东西?
我应该使用 bower install 来安装 firebase 库还是
应该直接指向一个 firebase cdn 脚本源吗?
我应该使用打字来安装 firebase typescript 定义吗?
这是 firebase 教程中的旧代码 https://www.firebase.com/docs/web/libraries/ionic/guide.html
index.html
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/1.2.0/angularfire.min.js"></script>
app.js
angular.module("starter", ["ionic", "firebase"])
其中仅包含对 Firebase 库的 cdn 引用。我们如何在 ionic 2 和 typescript
中做到这一点
您需要将 Firebase 和 Angularfire2 配置到您的 SystemJS 配置中:
System.config({
map: {
firebase: '/node_modules/firebase/lib/firebase-web.js',
angularfire2: ' node_modules/angularfire2'
},
packages: {
angularfire2: {
main: 'angularfire2.js',
defaultExtension: 'js'
},app: {
format: 'register',
defaultExtension: 'js'
}
},
});
这样你就可以AngularFire2了。
第一件事是在引导您的应用程序时指定 Angularfire2 提供程序:
(...)
import {FIREBASE_PROVIDERS, defaultFirebase, AngularFire} from 'angularfire2';
bootstrap(AppComponent, [
FIREBASE_PROVIDERS,
defaultFirebase('https://<your-firebase>.firebaseio.com'),
(...)
]);
然后您可以注入 AngularFire
class:
(...)
import {AngularFire} from 'angularfire2';
@Component({
(...)
})
export class AppComponent {
constructor(private af: AngularFire) {
}
}
ionic2应用中没有bootstrap...
- 您可以加载
angularfire2
和 firebase
的 npm 模块
- 在应用程序组件上设置提供程序
- 指定您的应用程序 URL
app.ts
import 'es6-shim';
import {App, Platform} from 'ionic-angular';
import {StatusBar} from 'ionic-native';
import {HomePage} from './pages/home/home';
import {FIREBASE_PROVIDERS, defaultFirebase, AngularFire} from 'angularfire2';
@App({
template: '<ion-nav [root]="rootPage"></ion-nav>',
providers: [
FIREBASE_PROVIDERS,
defaultFirebase('https://[YOUR-APP].firebaseio.com/')
],
config: {} // http://ionicframework.com/docs/v2/api/config/Config/
})
export class MyApp {
rootPage: any = HomePage;
constructor(platform: Platform) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
});
}
}
home.ts
import {Page} from 'ionic-angular';
import {Component} from 'angular2/core';
import {AngularFire} from 'angularfire2';
import {Observable} from 'rxjs/Observable';
@Page({
template: `
<ion-navbar *navbar>
<ion-title>
Home
</ion-title>
</ion-navbar>
<ion-content class="home">
<ion-card *ngFor="#item of bookItems | async">
<ion-card-header>
{{item.volumeInfo.title}}
</ion-card-header>
<ion-card-content>
{{item.volumeInfo.description}}
</ion-card-content>
</ion-card>
</ion-content>`
})
export class HomePage {
bookItems: Observable<any[]>;
constructor(af: AngularFire) {
this.bookItems = af.list('/bookItems');
}
}
git 回购中的完整源代码 - aaronksaunders/ionic2-angularfire-sample
您可以像这样监听身份验证事件
ngOnInit() {
// subscribe to the auth object to check for the login status
// of the user, if logged in, save some user information and
// execute the firebase query...
// .. otherwise
// show the login modal page
this.auth.subscribe((data) => {
console.log("in auth subscribe", data)
if (data) {
this.authInfo = data.password
this.bookItems = this.af.list('/bookItems');
} else {
this.authInfo = null
this.displayLoginModal()
}
})
}
正在从 ionic 1 过渡到 ionic 2,并且很好奇如何使用他们的 typescript 示例设置类似 firebase import * as Firebase from 'somewhere/foo/';
的东西。
bower是在ionic中安装js依赖的标准方式吗 2 或者我应该使用其他构建 chain/tool 来添加 类似 Firebase 的东西?
我应该使用 bower install 来安装 firebase 库还是 应该直接指向一个 firebase cdn 脚本源吗?
我应该使用打字来安装 firebase typescript 定义吗?
这是 firebase 教程中的旧代码 https://www.firebase.com/docs/web/libraries/ionic/guide.html
index.html
<!-- AngularFire -->
<script src="https://cdn.firebase.com/libs/angularfire/1.2.0/angularfire.min.js"></script>
app.js
angular.module("starter", ["ionic", "firebase"])
其中仅包含对 Firebase 库的 cdn 引用。我们如何在 ionic 2 和 typescript
中做到这一点您需要将 Firebase 和 Angularfire2 配置到您的 SystemJS 配置中:
System.config({
map: {
firebase: '/node_modules/firebase/lib/firebase-web.js',
angularfire2: ' node_modules/angularfire2'
},
packages: {
angularfire2: {
main: 'angularfire2.js',
defaultExtension: 'js'
},app: {
format: 'register',
defaultExtension: 'js'
}
},
});
这样你就可以AngularFire2了。
第一件事是在引导您的应用程序时指定 Angularfire2 提供程序:
(...)
import {FIREBASE_PROVIDERS, defaultFirebase, AngularFire} from 'angularfire2';
bootstrap(AppComponent, [
FIREBASE_PROVIDERS,
defaultFirebase('https://<your-firebase>.firebaseio.com'),
(...)
]);
然后您可以注入 AngularFire
class:
(...)
import {AngularFire} from 'angularfire2';
@Component({
(...)
})
export class AppComponent {
constructor(private af: AngularFire) {
}
}
ionic2应用中没有bootstrap...
- 您可以加载
angularfire2
和firebase
的 npm 模块
- 在应用程序组件上设置提供程序
- 指定您的应用程序 URL
app.ts
import 'es6-shim';
import {App, Platform} from 'ionic-angular';
import {StatusBar} from 'ionic-native';
import {HomePage} from './pages/home/home';
import {FIREBASE_PROVIDERS, defaultFirebase, AngularFire} from 'angularfire2';
@App({
template: '<ion-nav [root]="rootPage"></ion-nav>',
providers: [
FIREBASE_PROVIDERS,
defaultFirebase('https://[YOUR-APP].firebaseio.com/')
],
config: {} // http://ionicframework.com/docs/v2/api/config/Config/
})
export class MyApp {
rootPage: any = HomePage;
constructor(platform: Platform) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
});
}
}
home.ts
import {Page} from 'ionic-angular';
import {Component} from 'angular2/core';
import {AngularFire} from 'angularfire2';
import {Observable} from 'rxjs/Observable';
@Page({
template: `
<ion-navbar *navbar>
<ion-title>
Home
</ion-title>
</ion-navbar>
<ion-content class="home">
<ion-card *ngFor="#item of bookItems | async">
<ion-card-header>
{{item.volumeInfo.title}}
</ion-card-header>
<ion-card-content>
{{item.volumeInfo.description}}
</ion-card-content>
</ion-card>
</ion-content>`
})
export class HomePage {
bookItems: Observable<any[]>;
constructor(af: AngularFire) {
this.bookItems = af.list('/bookItems');
}
}
git 回购中的完整源代码 - aaronksaunders/ionic2-angularfire-sample
您可以像这样监听身份验证事件
ngOnInit() {
// subscribe to the auth object to check for the login status
// of the user, if logged in, save some user information and
// execute the firebase query...
// .. otherwise
// show the login modal page
this.auth.subscribe((data) => {
console.log("in auth subscribe", data)
if (data) {
this.authInfo = data.password
this.bookItems = this.af.list('/bookItems');
} else {
this.authInfo = null
this.displayLoginModal()
}
})
}