首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularFire2与Firebase JS

AngularFire2与Firebase JS
EN

Stack Overflow用户
提问于 2017-03-22 14:26:09
回答 1查看 1.1K关注 0票数 1

我发现AngularFire2库文档很差,很难使用。我有一个angular2应用程序,我想知道是否有人能帮我清除仅仅使用普通的JS防火墙代码而不是angularfire2的利弊?使用普通的JS版本会扼杀我可能使用的angular2功能吗?我搞不懂为什么要用一个而不是另一个,我个人认为普通的JS有更好的文档和丰富的特性,我甚至看不出如何在AngularFire2中注册用户,它没有任何UI元素,而且可观察到的东西正在影响我的头脑!

EN

回答 1

Stack Overflow用户

发布于 2017-03-22 15:16:08

你可以直接使用香草版。即使有可观察的例如:

代码语言:javascript
复制
Observable.of(new firebase.auth.GoogleAuthProvider())
  .switchMap(o => firebase.app().auth().signInWithPopup(o))
  .subscribe()

AngularFire2的主要优点是可以观察到(我建议您学习rxjs并开始使用它们而不是承诺)。我使用的是普通的JS,但是,我创建了基于refObservable的AngularFire2如何处理FirebaseObservables。这很简单,但足以满足我的需要:

代码语言:javascript
复制
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)是一个简单的函数,它检查快照并返回适当的结果(数组、对象、字符串等)。我用它从火库读取数据。创建/更新/删除我直接执行的操作:

代码语言:javascript
复制
Observable.of(checkUserPermission())
  .switchMap(() => {
    return firebase.database().ref('what/ever').remove();
  });

它和其他模块相似-存储,消息传递……比起AngularFire2,我更喜欢Firebase。我还发现在服务/网络工作者中更容易使用。

  • 如果你已经知道香草sdk,坚持它。
  • 如果您只需要使用AngularFire2进行数据库读写和基本身份验证,那么它就更简单了。
  • 如果您需要更多地控制防火墙功能,请使用JS。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42954470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档