【问题标题】:how can i access Realtime database by uesr id如何通过用户 ID 访问实时数据库
【发布时间】:2021-04-23 21:37:59
【问题描述】:

您好,我正在使用 http Flutter 从 Firebase Realtime db 获取数据

我想使用用户 ID 而不是令牌来访问数据

我试试这个:

我的实时数据库规则:

{
  "rules": {
      "$user_id": {
        ".read": "$user_id === auth.uid",
        ".write": "$user_id === auth.uid",
      }
  }
}

和网址:

final url = 'https://firebaseio-demo.firebaseio.com/Questions/$id.json?user_id=$userId';

但它不起作用:(

【问题讨论】:

  • “我想通过使用用户 ID 而不是令牌来访问数据” 这将是非常不安全的,因为用户的 UID 只是他们的标识符,而不是任何形式的身份验证。见stackoverflow.com/questions/37221760/…

标签: firebase flutter dart firebase-realtime-database


【解决方案1】:

需要在 JSON 中运行查询的位置定义实时数据库的索引。由于您在 /Question 上运行查询,因此您还需要在此处定义索引:

{
  "rules": {
    "Questions": {
      ".indexOn": "user_id"
    }
  }
}

另请参阅 indexing your data 上的 Firebase 文档。

【讨论】:

  • 感谢您的回答,但我想访问所有数据,而不仅仅是“问题”:(网址只是示例
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 2015-07-25
  • 2011-11-05
  • 2022-01-08
  • 2011-01-15
相关资源
最近更新 更多