【发布时间】:2021-04-18 12:32:12
【问题描述】:
我的问题是我不知道是否可以使用 AngularFireList 从 firabase 检索数据。如果我将数据库规则设置为数据只能由授权用户使用:
{
"rules": {
".read": "auth !=null", // 2021-1-28
".write": "auth !=null", // 2021-1-28
}
}
当然,我之前的获取逻辑不起作用,但我不知道如何告诉 firebase,该用户已获得授权。 这是我的服务功能:
constructor(
private db: AngularFireDatabase,
private authService: AuthService,
public afAuth: AngularFireAuth) {
}
getItems(){
this.pacRef = this.db.list('pacients');
this.pacientsData = this.pacRef.snapshotChanges().pipe(
map(changes=> changes.map(a=>({
key : a.payload.key, ...a.payload.val()
}))));
return this.pacientsData;
}
在这里,我尝试使用 gatItems(key) 函数从 firabase 获取数据。
constructor(private router:Router,
private pacientService: PacientServiceService,
private authService: AuthService) {
}
ngOnInit(): void {
this.userSub = this.authService.user.subscribe(user=>{
this.isAuthenticated = !!user;
this.userToken = user.token;
console.log(this.isAuthenticated);
if (this.isAuthenticated) {
this.pacientService.getItems().subscribe(pacientsData=>{
this.pacientsData = pacientsData;
});
}
});
}
来自控制台的图片: enter image description here 图片来自授权enter image description here
授权有效,我正在取回令牌。任何帮助都会有所帮助:) 这只是我使用 Angular 构建东西的第二个月。
【问题讨论】:
-
为什么要自己将令牌传递给数据库? Firebase 应该已经为您做到了。
标签: javascript angular google-cloud-firestore firebase-security