angularfire2 + angular 4:获取数据并在组件中使用它

时间:2017-10-13 00:15:20

标签: angular firebase angularfire2

好吧,我最近将angularJS转换为角度4.x,我遇到了一些问题。请注意,我没有移动任何应用,我只是从头开始构建一个新应用,使用Firebase作为我的后端。

我到了我认证工作正常的阶段(注册和登录)。但是,Firebase的内置用户系统允许使用电子邮件地址和密码进行注册 - 而我想添加用户名。要求此用户名是唯一的。

作为一个结构,我有一个auth.service,它负责与firebase交谈以注册/登录/注销。 从概念上讲,我的想法是,一旦用户想要注册(因此,填写表单并单击按钮),查询数据库以查找已使用该名称注册的任何用户。 这是我试图实现的失败。我查询数据,但是当我想使用它时,它始终是未定义的......

为了简化,确保用户只有在他选择的用户名是唯一的时候才能注册的最佳方法是什么?

我会感激任何帮助,即使只是指出一个教程,我发现文档很难遵循。我正在使用带有angularfire2 v4的firebase 3.9。

谢谢:)

1 个答案:

答案 0 :(得分:0)

我可以看到两种方法来检查用户是否已经注册。

  1. 如果已经注册的用户,Firebase将会出错

    可能是最简单的方法,您不需要在现有代码中添加太多代码。只需修改您实施注册的服务中的可观察错误处理。

    1. 添加" / users"节点
    2. 在您执行注册功能之前,请检查您的用户列表是否存在类似此内容的现有电子邮件

      db.list('/users', ref => ref.equalTo(signUpEmail))
      

      请注意,只要您有新注册用户,请将其添加到此列表中。

      更多信息:

      查询列表 - https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md