Angularjs 如何阅读firebase中的特定集合?

Angularjs 如何阅读firebase中的特定集合?,angularjs,firebase,google-cloud-firestore,Angularjs,Firebase,Google Cloud Firestore,我有两个组件要以“用户”和“工作者”的身份登录。它们的数据以两个集合名称命名为“用户”、“工作者”。这是我的“用户登录”功能 SignIn(email, password) { this.value = this.afs.collection( 'users' , ref => ref.where('email', '==', email) ).valueChanges(); this.value.subscribe(data => {

我有两个组件要以“用户”和“工作者”的身份登录。它们的数据以两个集合名称命名为“用户”、“工作者”。这是我的“用户登录”功能

SignIn(email, password) {
    this.value = this.afs.collection( 'users'  , ref =>
      ref.where('email', '==', email)
    ).valueChanges();
    this.value.subscribe(data => {
      this.datas = data;
      console.log(this.datas )
        return this.afAuth.auth.signInWithEmailAndPassword(email, password).then((result) => {
          this.ngZone.run(() => {
            this.router.navigate(['home']);
          });
        }).catch((error) => {
          window.alert(error);
          this.router.navigateByUrl('signinu');
        })
    });
  }
因此,在这个函数中,我可以使用“Worker”收集数据登录。这意味着“Worker”可以使用“User login”组件登录。那么如何解决这个问题呢?请帮帮我

这是我的“工作人员登录”功能

SignIn(email, password) {
        this.value = this.afs.collection('workers', ref =>
            ref.where('email', '==', email)
        ).valueChanges();
        this.value.subscribe(data => {
            this.datas = data;
            console.log(this.datas)
            if (this.datas !== null) {
                return this.afAuth.auth.signInWithEmailAndPassword(email, password).then((result) => {
                    this.ngZone.run(() => {
                        this.router.navigate(['/profile/' + this.datas[0].uid]);
                    });
                }).catch((error) => {
                    window.alert(error);
                    this.router.navigateByUrl('signinu');
                })
            } else {
                window.alert('Invalid user');
            }
        });
    }

在登录页面中,创建一个下拉菜单,用户可以在其中选择自己是
用户
还是
工作者
,然后在
登录
方法中添加另一个名为
类型
的参数:

登录(电子邮件、密码、类型)


并检查类型是否等于
用户
,然后使用集合
用户
,否则如果类型等于
工作者
,则使用集合
工作者
。检索时,您已经在使用
where
查询电子邮件是否存在于
user
集合或
worker
集合中。如果用户是
工作者
,并且他们单击了
用户
,则由于您正在执行查询以检查电子邮件,因此不会检索任何内容,并且您可以显示警报

我不清楚这里有什么问题,我是工人。所以现在我以工作人员的身份登录。当我点击“登录”按钮时,我应该进入我的“员工档案”页面。如果我在登录时是用户,我应该转到“主页”。所以在这里它不起作用了。始终指向“主页”,即使他是“工作者”或“用户”。@DougStevenson明白了吗?我已经这么想了,但这是登录页面的正式内容吗?无论如何,我会试试这个,谢谢。在下拉菜单中,如何将所选值传递给登录函数?用户工作者和此处(单击)=“登录(useremail.value、userPassword.value、jobType.value)”>但这不是通过所选值