gpt4 book ai didi

javascript - Firebase angularfire2 - 如何仅从当前用户返回数据?

转载 作者:行者123 更新时间:2023-12-03 00:37:53 27 4
gpt4 key购买 nike

我正在尝试找出如何将集合限制为仅返回用户的数据,而不是每个人的数据。

在我使用 FirebaseService 的示例中,仅显示 CRUD 示例,其中返回的数据就是一切。

import { Injectable } from "@angular/core";
import { Platform } from 'ionic-angular';
import 'rxjs/add/operator/toPromise';
import { AngularFirestore } from 'angularfire2/firestore';
import * as firebase from 'firebase/app';
import 'firebase/storage';

@Injectable()
export class FirebaseService {

constructor(
public afs: AngularFirestore,
public platform: Platform
){}

getEvents(){
return new Promise<any>((resolve, reject) => {
this.afs.collection('/events').snapshotChanges() // add +auth.uid ... or something?
.subscribe(snapshots => {
resolve(snapshots)
})
})
}

...

为了只取回用户的事件,我认为我需要添加:

import { AngularFireAuth } from 'angularfire2/auth';

...并且,从那里做一些事情。但是,我不知所措。任何帮助将不胜感激。提前致谢!

最佳答案

您可以通过添加规则来限制这一点。例如,您正在使用/users/节点来存储用户信息。可以限制只有与userId匹配的登录用户才能访问/users/

match /databases/{database}/documents {

function isSignedIn() {
return request.auth != null;
}

function isOwner(userId) {
return request.auth.uid == userId
}

match /users/{userId} {
allow get: if isSignedIn()
&& isOwner(userId);
....
}

}

获取用户ID

constructor(
private afAuth: AngularFireAuth )

// then
ngOnInit() {

this.afAuth.authState;
this.afAuth.authState.subscribe(
user => {
this.userInfo = user; <-- You can store user Id information to user variable
},
err => {
console.log(err);
}
}

您可以使用 this.userInfo.uid 进行进一步调用。

关于javascript - Firebase angularfire2 - 如何仅从当前用户返回数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53584802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com