如何检查Firebase文档是否具有带值的字段?

用户名

我在学习Angular + Firebase时遇到问题。我有一组用户和一个角色。我正在使用为用户生成的ID存储我的角色数据。这是屏幕截图:

Firebase快照

我想使用canActivate函数来管理谁可以编辑哪些数据。您如何检查用户的admin字段是否设置为true?我可以通过以下方式获取用户的角色文档:

this.afs.collection('roles').doc(id).valueChanges()

我可以这样在HTML中显示数据:

*ngIf="roles$ | async as roles"

但是,我想使用它来验证用户是否具有管理员权限。

波尔·克鲁伊特

您将必须使用take(1)first()运算符,仅从firebase流中获取第一个发射。CanActivate后卫需要一个完成Observable

export interface UserRoles {
  admin: boolean;
  editor: boolean;
  subscriber: boolean;
}

@Injectable({
  providedIn: 'root'
})
export class IsAdminGuard implements CanActivate {
  constructor(private auth: AngularFireAuth, private afs: AngularFirestore) {}

  canActivate(): Observable<boolean> {
    return this.auth.user.pipe(
      switchMap((user) => !user?.uid
        ? of(false)
        : this.afs.doc<UserRoles>(`roles/${user.uid}`).valueChanges().pipe(
            map((roles) => !!(roles?.admin))
          )
      ),
      take(1)
    );
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取具有特定值的字段的文档的文档ID?

来自分类Dev

如何检查是否设置了所有具有默认值的对象字段?

来自分类Dev

如何检查Firebase中是否存在具有多个字段的节点(子节点)?

来自分类Dev

jQuery检查隐藏的字段是否具有值

来自分类Dev

如何从MongoDB文档中删除具有指定值的字段?

来自分类Dev

_lodash是否可以测试数组以检查数组元素是否具有具有特定值的字段?

来自分类Dev

如何安全检查动态对象是否具有字段

来自分类Dev

如何优雅地检查JS中两个对象之间是否有任何字段具有更长的值?

来自分类Dev

检查某些字段的重复项是否具有内部数组的文档数组

来自分类Dev

Firebase Firestore 检查文档是否有集合

来自分类Dev

检查具有相同ID的DB中的记录在字段中是否具有不同的值

来自分类Dev

如何检查值是否具有偶校验或奇校验?

来自分类Dev

PHP:如何检查对象的属性是否具有值?

来自分类Dev

如何检查数组是否多次具有值

来自分类Dev

如何检查php变量是否具有datetime值?

来自分类Dev

PHP:如何检查对象的属性是否具有值?

来自分类Dev

如何检查数组是否多次具有值

来自分类Dev

如何检查具有特定值的项目是否属于SelectList?

来自分类Dev

如何检查变量列表是否具有特定值?

来自分类Dev

检查IPropertySymbol是否具有支持字段

来自分类Dev

如何从Firebase获取具有字段值的数据?

来自分类Dev

检查表格行的所有输入/选择字段是否都具有值

来自分类Dev

MongoDB-检查文档中的字段是否存在值

来自分类Dev

如何在Firestore中检查是否存在具有给定ID的文档,而无需花费金钱?

来自分类Dev

如何使用聚合检查MongoDB数据库中的所有文档的特定字段的最新值?

来自分类Dev

检查对象列表中的字段是否具有特定值?

来自分类Dev

检查切片是否包含具有给定字段值的结构

来自分类Dev

jQuery检查选择字段是否具有特定值并添加必需的属性

来自分类Dev

检查ArrayList中数据类中的字符串字段是否具有给定值

Related 相关文章

  1. 1

    如何获取具有特定值的字段的文档的文档ID?

  2. 2

    如何检查是否设置了所有具有默认值的对象字段?

  3. 3

    如何检查Firebase中是否存在具有多个字段的节点(子节点)?

  4. 4

    jQuery检查隐藏的字段是否具有值

  5. 5

    如何从MongoDB文档中删除具有指定值的字段?

  6. 6

    _lodash是否可以测试数组以检查数组元素是否具有具有特定值的字段?

  7. 7

    如何安全检查动态对象是否具有字段

  8. 8

    如何优雅地检查JS中两个对象之间是否有任何字段具有更长的值?

  9. 9

    检查某些字段的重复项是否具有内部数组的文档数组

  10. 10

    Firebase Firestore 检查文档是否有集合

  11. 11

    检查具有相同ID的DB中的记录在字段中是否具有不同的值

  12. 12

    如何检查值是否具有偶校验或奇校验?

  13. 13

    PHP:如何检查对象的属性是否具有值?

  14. 14

    如何检查数组是否多次具有值

  15. 15

    如何检查php变量是否具有datetime值?

  16. 16

    PHP:如何检查对象的属性是否具有值?

  17. 17

    如何检查数组是否多次具有值

  18. 18

    如何检查具有特定值的项目是否属于SelectList?

  19. 19

    如何检查变量列表是否具有特定值?

  20. 20

    检查IPropertySymbol是否具有支持字段

  21. 21

    如何从Firebase获取具有字段值的数据?

  22. 22

    检查表格行的所有输入/选择字段是否都具有值

  23. 23

    MongoDB-检查文档中的字段是否存在值

  24. 24

    如何在Firestore中检查是否存在具有给定ID的文档,而无需花费金钱?

  25. 25

    如何使用聚合检查MongoDB数据库中的所有文档的特定字段的最新值?

  26. 26

    检查对象列表中的字段是否具有特定值?

  27. 27

    检查切片是否包含具有给定字段值的结构

  28. 28

    jQuery检查选择字段是否具有特定值并添加必需的属性

  29. 29

    检查ArrayList中数据类中的字符串字段是否具有给定值

热门标签

归档