如何在React Native JS中使用Firebase实时数据库规则

vlju58qv  于 2023-02-24  发布在  React
关注(0)|答案(1)|浏览(113)

我正在使用Firebase进行实时聊天,我已经实现了整个聊天,它运行良好。但我确实有一个问题,设置规则和使用它们在我的应用程序。
以下是我使用的规则。

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

现在,我如何在应用中使用它们获取数据和写入数据?
我在这里得到我的DB

const db = getDatabase();

这是一个聊天功能

const getChatListing= async() => {
        const reference = ref(db,'chats/');
        onValue(reference, (snapshot) => {
            // some operational code
        });

在Firebase上验证身份验证Uid时,应将其放在何处
我试着把firebase配置和初始化的应用程序作为参数放在getDatabase函数中,但没有成功。

qojgxg4l

qojgxg4l1#

您的规则用于users数据库节点,而您的代码用于chats数据库节点。
您需要按如下方式调整规则

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

当然,用户需要通过FirebaseAuth服务进行身份验证。
我建议您彻底阅读documentation on Security Rules
旁注:请注意,onValue()方法不是异步的,而get()方法是异步的。

相关问题