我发现AngularFire2库文档记录不完整,很难使用。我有一个angular2应用程序,并想知道是否有人可以帮助我清除使用vanilla JS Firebase代码而非angularfire2的优点/缺点?是否使用香草JS版本取消了我可能使用的angular2功能?我很困惑,为什么使用一个在另一个,个人香草JS一waaaay更好地记录和功能丰富,我什至不能看到如何注册AngularFire2的用户,它没有任何UI元素和observables是尽我所能!AngularFire2 vs Firebase JS
0
A
回答
0
您可以直接使用vanilla版本。即使有可观察到的情况 - 可观察到的和承诺一起很好地工作。例如:
Observable.of(new firebase.auth.GoogleAuthProvider())
.switchMap(o => firebase.app().auth().signInWithPopup(o))
.subscribe()
AngularFire2的
主要优点是头部伤害可观(;我建议你学习rxjs,并开始使用过承诺,我使用香草JS SDK,但是,我已经根据创建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)
是检查快照,并返回相应的结果(数组,对象,字符串等)的简单功能,我用它来从firebase读取数据创建/更新/删除操作我直接做:
Observable.of(checkUserPermission())
.switchMap(() => {
return firebase.database().ref('what/ever').remove();
});
它与其他模块类似 - 存储,消息,身份验证...我更喜欢通过AngularFire2的Firebase SDK。我也发现在服务/网络工作者中使用起来更容易。
- 如果你已经知道香草sdk,坚持下去。
- 如果你只需要数据库读/写和基本认证使用AngularFire2就简单了。
- 如果您需要使用JS SDK更多地控制Firebase功能。
相关问题
- 1. Ionic 2&Angularfire2 + Firebase
- 2. Angular2和Firebase(AngularFire2)
- 3. Angularfire2 Ionic2 firebase未定义
- 4. Angularfire2/Firebase - 查询与angularfire2列表订阅运行时不工作
- 5. angularfire2
- 6. 在AngularFire2/Firebase和NodeJS之间共享AccessToken
- 7. 错误:polifill promise angularfire2
- 8. 使用AngularFire2
- 9. Firebase DatabaseReference vs DataSnapshot
- 10. Angularfire2:如何做群
- 11. Firebase JS Authenticstion cookies
- 12. Angular 4与AngularFire2
- 13. AngularFire2 Firebase.update failed snapshot.exists()
- 14. 使用AngularFire2分页
- 15. 访问与AngularFire2(Angular2 rc.5)
- 16. vue js router + firebase authentication
- 17. Angular js 1.0 vs Angular js 2.0
- 18. AngularFire2 OAuth2与谷歌获取Firebase授权错误
- 19. Firebase查询返回{$ value:null}其中有一个数组--Ionic/Angular2/AngularFire2
- 20. 我想计算Firebase中的ShoppingCart与Angularfire2的总和
- 21. 将firebase uid推到多个位置 - Angularfire2 Ionic 3
- 22. 如何使用AngularFire2更新Firebase中的用户?
- 23. Firebase angularfire2从数据库中获取对象
- 24. 查询不带同步的Firebase数据库angularfire2
- 25. 使用AngularFire2从Firebase中的多个键检索值
- 26. Ionic和Firebase angularFire2 5.0.0 InvalidPipeArgument:管道'AsyncPipe'的'[object object]'
- 27. 检查用户名是否存在于数据库中firebase angularfire2
- 28. AngularFire2 - 获取由Firebase生成的节点UID?
- 29. 如何使用AngularFire2和Firebase加入两个节点?
- 30. 使用angularfire2获取Firebase数据库中的时间
感谢您的回答。我一直在努力让自己的脑袋围绕rxJS - 但是我在更高级的用途中挣扎着一些“概念”,特别是当在服务中使用Observable时。 '的getUser(){ 返回this.getAuth()switchMap((AUTH)=> { 返回this.af.database.object( “用户/” + auth.uid + “/公共”); })。 ; } getAuth(){ return this.af.auth.map((auth)=> {return auth}); }' –
很难说出你想从评论中获得什么。发布有关您的问题的其他问题。至于RxJS,是的,当你开始的时候它可能是压倒性的。简单来说,网上有很多资源 - 课程/教程等... – Sasxa