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)”>但这不是通过所选值