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

时间:2017-03-02 22:22:43

标签: ios firebase firebase-realtime-database firebase-security

我的应用程序设置了一个用Java和Spring Boot编写的后端REST api。我在后端创建自定义firebase令牌,客户端(iOS平台)调用API来检索。使用此自定义令牌,我使用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模型,我将允许所有经过身份验证的用户阅读&amp;写。

我将如何实施以下规则:

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

提前谢谢!

1 个答案:

答案 0 :(得分:1)

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

这是你正在寻找的吗?