javascript - Firebase 自定义声明允许使用哪些数据类型?

标签 javascript firebase firebase-authentication timestamp firebase-security

我查看了 firebase 文档并发现:

The custom claims object should not contain any OIDC reserved key names or Firebase reserved names. Custom claims payload must not exceed 1000 bytes.

这里自定义声明被称为“自定义声明对象”,但我在哪里可以找到设置不是原始数据类型(int、float、string等)的值的示例:自定义声明(在文档和其他教程中)。现在我很困惑的是,对象指的是整套自定义声明或单个自定义声明。

简单地说,这是有效的:

admin.auth().setCustomUserClaims(uid, {endDate: new Date()});

或者一般情况

admin.auth().setCustomUserClaims(uid, {
    key1: {
        sub_key1: value1,
        sub_key2: value2      
    },
    key2: {
        sub_key1: vlaue1
    }
});

如果这无效,是否有任何方法可以将时间戳设置为自定义声明,以便我可以在安全规则中使用它来允许基于它的访问。

最佳答案

自定义声明接受任何有效的 JSON。这意味着您只能使用 JSON 类型,即字符串、数字、 bool 值、数组、对象。日期无效。相反,您应该存储日期的数字表示形式。自纪元以来使用毫秒是很常见的,例如您从Date.now()获得的毫秒数。 .

{ endDate: Date.now() }

关于javascript - Firebase 自定义声明允许使用哪些数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62751238/

相关文章:

java - Android 和 Firebase 将 EditText 与实时数据库子值进行比较

javascript - 没有 closeOnSelect 的 Select2 多选在所选标签顶部重叠结果

javascript - 使用 jquery 获取 img 属性

javascript - slider 需要多次单击才能滚动

javascript - 如何将匿名 firebase 凭证保存到本地存储以外的其他地方?

java - Firebase 数据检索 java

ios - 验证 Firebase 中所有用户的电子邮件

javascript - 使用ajax提交表单并提交阻止并发送文件控件c#的选定文件

javascript - 如何将每个用户对象合并到数组的可观察对象中?

android - 检查电子邮件和密码是否正确 Firebase