【发布时间】:2017-11-23 01:51:54
【问题描述】:
我正在尝试找到一个使用 angularfire2 的完整示例,但我找不到。一些示例将 anugalrfire2 与原生 firebase 或旧版本的 angularfire 结合使用。
我有一些关于如何使用 angularfire2/database 创建两个具有依赖关系的文档的问题。
例子
数据库:
locations {
country: string
lat: number
long: number
.....
}
stores {
name: string
locationID: string
description: string
.....
}
因此,如果可能的话,试图找到一种方法在原子创建中创建一个location 和一个store,但没有运气。然后,我可以更新newStore.locationID = newLocation.id
import { AngularFireDatabase } from 'angularfire2/database';
....
constructor(private db: AngularFireDatabase) { }
createStore(ownerID: number, storeData: Store, locationData: Location) {
let promises = {
newStore: this.db.object('/stores').add(storeData),
newLocation: this.db.object('/locations').add(locationData),
}
Observable.forkJoin(promises).subscribe((r) => {
newStore.userID = ownerID;
newStore.workingRegionID = newLocation.key;
});
}
我也尝试创建一个空的商店(使用 AngularFire2),但我没有找到方法来做到这一点。 (收到所有类型的错误)
import { AngularFireDatabase } from 'angularfire2/database';
....
constructor(private db: AngularFireDatabase) { }
createStore(ownerID: number, storeData: Store, locationData: Location) {
let newStoreKey = this.db.object('/stores').push().key;
let newLocationKey = this.db.object('/locations').push().key;
storeData.userID = ownerID;
storeData.workingRegionID = newLocationKey;
let sets = {};
sets['/stores/' + newStoreKey] = Store;
sets['/locations/' + newLocationKey] = Location;
return Observable.fromPromise(this.db.set(sets));
}
最后,我有一些关于原子性和规则的问题。
- 是否需要使用 Firebase 的事务来使其具有原子性?
- AngularFire2 从 Firebase 检索规则?如果没有,我可以离线设置/更新信息吗?当我上线时,Angular 会触发写入异常吗?我应该如何在我的代码中处理这个问题?
【问题讨论】:
标签: angular firebase angularfire2