具有基于角色的身份验证的离子性侧面菜单

时间:2018-12-04 21:20:09

标签: javascript typescript firebase-realtime-database ionic3 angularfire2

我刚刚用angularfire学习了离子技术。我正在尝试使用此site中的角色创建身份验证。我有3个角色=管理员,成员和来宾。我想通过这样从实时数据库中获取数据,将其与angularfire结合起来

  "profile" : {
    "MsTCKbUfNsRhcEtAl3pEHdy70Rw1" : {
      "firstName" : "test",
      "role" : "admin",
      "lastName" : "test",
      "userName" : "test"
    },

和此身份验证

@Injectable()
export class AuthProvider {

  currentRole: Roles;
  roleRef : Observable<any[]>;

  constructor(
    public afAuth: AngularFireAuth,
    public afDatabase: AngularFireDatabase) {
        this.roleRef = afDatabase.object('profile').valueChanges();
    }

  role(roleRef: string) : Promise<boolean> {
    return new Promise((resolve, reject) => {
      if (this.roleRef === 'admin') {
        this.currentRole = {
          role: 0
        };
        resolve(true);
      } else if (this.roleRef === 'member') {
        this.currentRole = {
          role: 1
        };
        resolve(true);
      } else {
        resolve(false);
      }
    });
  }

    isAdmin(): Promise<void> {
      return this.currentRole.role === 0;
    }

此代码给出:

  

TypeError:“ this.currentRole未定义”

请帮助我完成此操作,或者给我另一个授权教程。如果我忘记提供其他信息,请告诉我,我将对其进行编辑

0 个答案:

没有答案