【问题标题】:How to allow everyone to see the list of books in FireBase Database如何让每个人都能看到 FireBase 数据库中的图书列表
【发布时间】:2017-03-26 20:50:50
【问题描述】:

我有一个注册和登录我的应用程序的活动,之后用户可以添加一本书(标题,描述...)。

我还有一个包含书籍列表视图的活动。这个活动是主页,我想让每个人都可以看到它,即使是没有登录的人。

 <activity
            android:name=".AccueilActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

我怎样才能允许所有人访问此活动,并保持规则安全"auth != null",添加书籍和其他操作?

我在 FireBase 数据库中的规则:

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

节点书:

【问题讨论】:

    标签: android firebase firebase-security


    【解决方案1】:

    您可以创建节点特定规则,如下所示:

    {
      "rules": {
        "books" : {
          ".read" : "true",
          ".write": "true"
        }
        "$other" : {
          ".read" : "auth != null",
          ".write": "auth != null"
        }
      }
    }
    

    这里database.rules 不需要身份验证,而其余的则需要身份验证(由$other 管理)。

    【讨论】:

    • otherData 参考什么?
    • 我只是给您一个示例,说明如何在数据库的不同节点上实现不同的身份验证类型。 'otherData' 只是一个占位符
    • 你快到了@MehmetKologlu:如果你将otherData 更改为$other,它将适用于除books 之外的所有儿童。但请务必尝试一下,因为我从来没有像这样使用$other 来获得读取权限。
    • @FrankvanPuffelen 我没有用它来指代其余的节点,而只是另一个节点,但这是更好的方法,谢谢。我会相应地编辑我的答案
    • @Amal 这解决了您的问题吗?介意对我的回答提供反馈吗?
    猜你喜欢
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 2020-09-05
    • 2020-08-18
    • 2019-09-21
    • 2012-11-24
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多