我发现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. Angular2和Firebase(AngularFire2)
- 2. Ionic 2&Angularfire2 + Firebase
- 3. 从firebase捕获异常 - AngularFire2
- 4. Angularfire2 Ionic2 firebase未定义
- 5. Angularfire2/Firebase - 查询与angularfire2列表订阅运行时不工作
- 6. angularfire2
- 7. Angular4/AngularFire2:从管道内查询firebase?
- 8. 在AngularFire2/Firebase和NodeJS之间共享AccessToken
- 9. 错误:polifill promise angularfire2
- 10. 使用AngularFire2
- 11. Firebase DatabaseReference vs DataSnapshot
- 12. Firebase updatechildren vs setvalue
- 13. Angularfire2:如何做群
- 14. Angularjs2 + Electron + Angularfire2
- 15. AngularFire2 orderByKey和startAt
- 16. Firebase JS Authenticstion cookies
- 17. AngularFire2 Firebase.update failed snapshot.exists()
- 18. Angular 4与AngularFire2
- 19. 使用AngularFire2分页
- 20. 身份验证电子邮件/密码与Firebase sdk3和Angularfire2
- 21. 访问与AngularFire2(Angular2 rc.5)
- 22. vue js router + firebase authentication
- 23. 查询不带同步的Firebase数据库angularfire2
- 24. 缓存firebase数据不会重复请求。 Angular2与angularfire2
- 25. 使用AngularFire2从Firebase中的多个键检索值
- 26. 使用angularfire2获取Firebase数据库中的时间
- 27. 如果用户存在,Firebase(AngularFire2)仅允许OAuth登录
- 28. Firebase查询返回{$ value:null}其中有一个数组--Ionic/Angular2/AngularFire2
- 29. 使用angularfire2时找不到命名空间'firebase'
- 30. 检查用户名是否存在于数据库中firebase angularfire2
感谢您的回答。我一直在努力让自己的脑袋围绕rxJS - 但是我在更高级的用途中挣扎着一些“概念”,特别是当在服务中使用Observable时。 '的getUser(){ 返回this.getAuth()switchMap((AUTH)=> { 返回this.af.database.object( “用户/” + auth.uid + “/公共”); })。 ; } getAuth(){ return this.af.auth.map((auth)=> {return auth}); }' –
很难说出你想从评论中获得什么。发布有关您的问题的其他问题。至于RxJS,是的,当你开始的时候它可能是压倒性的。简单来说,网上有很多资源 - 课程/教程等... – Sasxa