Firebase 数据库权限被自定义令牌拒绝

Posted

技术标签:

【中文标题】Firebase 数据库权限被自定义令牌拒绝【英文标题】:Firebase Database permission denied with custom tokens 【发布时间】:2017-03-02 22:22:43 【问题描述】:

我的应用程序设置了一个用 Java 和 Spring Boot 编写的后端 REST api。我在客户端(ios平台)调用API进行检索的后端创建自定义firebase令牌。使用此自定义令牌,我使用 FIRAuth.auth()?.signIn(withCustomToken: customToken) 登录,其中 customToken 是来自 api 响应的值。

我正在按如下方式创建这些自定义令牌:

public static String createCustomFirebaseToken()
        UUID uid = UUID.randomUUID();
        Task<String> authTask = FirebaseAuth.getInstance().createCustomToken(uid.toString());
        try 
            Tasks.await(authTask);
         catch (ExecutionException | InterruptedException e ) 
            //TODO: handle exception
        
        String customToken = authTask.getResult();
        return customToken;

我可以在 Firebase 控制台的“身份验证”选项卡下查看为创建这些自定义令牌而生成的 UUID。

在我的 Firebase 数据库中,我只想向这些经过身份验证的用户授予读/写权限 - 这是我卡住的地方,因为我对 Firebase 不太熟悉。

例如,假设我有一个news 模型,在该模型中我将允许所有经过身份验证的用户进行读写。

我将如何实施如下规则:


    "news":
        ".read": // authenticated user
        ".write": // authenticated user
    

提前谢谢你!

【问题讨论】:

【参考方案1】:

    "news": 
        ".read": "auth != null",
        ".write": "auth != null"
    

这就是你要找的吗?

【讨论】:

完美,这比我想象的要容易得多——谢谢朋友!

以上是关于Firebase 数据库权限被自定义令牌拒绝的主要内容,如果未能解决你的问题,请参考以下文章

使用 JWT 创建 Firebase 自定义身份验证令牌

Firebase自定义令牌php服务器生成错误

从 Web SDK 访问 Firebase 自定义令牌声明

UITableView 被自定义日历视图覆盖

使用 php-jwt 库解码 firebase 自定义令牌时出现 openssl_verify() 错误

如何验证由createCustomToken()创建的自定义Firebase验证令牌