我发现AngularFire2库文档很差,很难使用。我有一个angular2应用程序,我想知道是否有人能帮我清除仅仅使用普通的JS防火墙代码而不是angularfire2的利弊?使用普通的JS版本会扼杀我可能使用的angular2功能吗?我搞不懂为什么要用一个而不是另一个,我个人认为普通的JS有更好的文档和丰富的特性,我甚至看不出如何在AngularFire2中注册用户,它没有任何UI元素,而且可观察到的东西正在影响我的头脑!
发布于 2017-03-22 15:16:08
你可以直接使用香草版。即使有可观察的例如:
Observable.of(new firebase.auth.GoogleAuthProvider())
.switchMap(o => firebase.app().auth().signInWithPopup(o))
.subscribe()AngularFire2的主要优点是可以观察到(我建议您学习rxjs并开始使用它们而不是承诺)。我使用的是普通的JS,但是,我创建了基于refObservable的AngularFire2如何处理FirebaseObservables。这很简单,但足以满足我的需要:
export function refObservable(ref): Observable<firebase.database.DataSnapshot> {
return Observable.create(observer => {
let fn;
try {
fn = ref.on('value', snapshot => {
observer.next(unwrapSnapshot(snapshot));
});
} catch (error) {
observer.error(error);
}
return () => ref.off('value', fn);
});
};其中unwrapSnapshot(snapshot)是一个简单的函数,它检查快照并返回适当的结果(数组、对象、字符串等)。我用它从火库读取数据。创建/更新/删除我直接执行的操作:
Observable.of(checkUserPermission())
.switchMap(() => {
return firebase.database().ref('what/ever').remove();
});它和其他模块相似-存储,消息传递……比起AngularFire2,我更喜欢Firebase。我还发现在服务/网络工作者中更容易使用。
https://stackoverflow.com/questions/42954470
复制相似问题