在Firebase存储规则中使用用户声明

在Firebase存储规则中使用用户声明,firebase,firebase-authentication,firebase-storage,firebase-admin,firebase-security,Firebase,Firebase Authentication,Firebase Storage,Firebase Admin,Firebase Security,是否可以在Firebase存储规则中使用自定义声明? 看起来这些值无法从那里访问 这是我的规则: match /b/{bucket}/o { match /{userId}/files/{fileName} { allow read: if request.auth.token.admin == true; } } 这些规则会抛出一个错误: 错误:simulator.rules行[13],列[20]。属性管理员是 对象上未定义 我以前是这样设置userClaims的:

是否可以在Firebase存储规则中使用自定义声明? 看起来这些值无法从那里访问

这是我的规则:

match /b/{bucket}/o {    
  match /{userId}/files/{fileName} {
    allow read: if request.auth.token.admin == true;
  }
}
这些规则会抛出一个错误:

错误:simulator.rules行[13],列[20]。属性管理员是 对象上未定义

我以前是这样设置userClaims的:

await admin.auth().setCustomUserClaims(user.uid, {
        groupToken: 'abecadlo',
        admin: true
    });

以下规则应消除警告:

    match /b/{bucket}/o {    
      match /{userId}/files/{fileName} {
        allow read: if "admin" in request.auth.token && request.auth.token.admin == true;
      }
    }

您是否在Firebase控制台上使用了Firebase存储模拟器?Firebase控制台上的Firebase存储模拟器无法使用自定义声明进行模拟。你能尝试使用你的应用程序测试安全规则吗?是-。我不知道你为什么会犯这样的错误——除非你像zkohi问的那样使用模拟器。