即使我的规则看起来正确,firebase 数据库权限也被拒绝

     2023-04-19     59

关键词:

【中文标题】即使我的规则看起来正确,firebase 数据库权限也被拒绝【英文标题】:firebase database permission denied even if my rules looks right 【发布时间】:2021-01-18 21:52:25 【问题描述】:

我正在制作带有购物车的购物应用程序并将购物车内容存储在数据库中。我设置了规则,以便用户只能在自己的购物车上读写。 这是我的代码:

final DatabaseReference cartListRef = FirebaseDatabase.getInstance().getReference().child("Carts");

        double totalprice = buyCount.getValue() * Double.parseDouble(productPrice.getText().toString());

        final HashMap<String, Object> cartMap = new HashMap<>();
        cartMap.put("id", productId);
        cartMap.put("name", productName.getText().toString());
        cartMap.put("price", productPrice.getText().toString());
        cartMap.put("date", saveCurrentDate);
        cartMap.put("time", saveCurrentTime);
        cartMap.put("quantity", Long.toString(buyCount.getValue()));
        cartMap.put("discount", "");
        cartMap.put("image", imageUrl);
        cartMap.put("totalPrice", totalprice);

        cartListRef.child("Users").child(mAuth.getCurrentUser().getUid())
                .child("Products").child(productId)
                .updateChildren(cartMap)
                .addOnCompleteListener(new OnCompleteListener<Void>() 
                    @Override
                    public void onComplete(@NonNull Task<Void> task) 
                            if (task.isSuccessful()) 
                                Toast.makeText(ProductDetailsActivity.this, "تمت اضافة المنتج اٍلى السلة", Toast.LENGTH_LONG).show();

                                Intent intent = new Intent(ProductDetailsActivity.this, HomeActivity.class);
                                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
                                startActivity(intent);
                                finish();
                            
                    
                );

这是我的规则:


"rules": 
  "Users": 
    "$uid": 
      ".write": "auth != null && auth.uid == $uid",
      ".read": "auth != null && auth.uid == $uid"
     
   ,
  "Products": 
       ".read": "auth != null",
       ".write": "auth != null"
  ,
  "Carts": 
    "Users":
      "$uid": 
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid"
      
    
    
   
     
 

我得到错误权限被拒绝:

10-03 18:04:06.567 14964-15226/com.cloud.fashenista W/SyncTree:监听 /Orders/Users/lDQI2pwcuLfStHEfdC9cbfMsYf92 失败:DatabaseError: Permission denied 2020-10-03 18:04:06.753 14964- 15226/com.cloud.fashenista W/SyncTree:收听 /Orders/Users/lDQI2pwcuLfStHEfdC9cbfMsYf92/Products/IVvWWSaVC5YRMZoZs9AO 失败:DatabaseError:Permission denied –

我不确定这是否有什么不同,但还没有名为“Carts”的孩子

【问题讨论】:

我没有立即看到updateChildren 会如何被您共享的规则拒绝。你能显示你得到的完整错误消息和堆栈跟踪吗? 10-03 18:04:06.567 14964-15226/com.cloud.fashenista W/SyncTree:收听 /Orders/Users/lDQI2pwcuLfStHEfdC9cbfMsYf92 失败:DatabaseError:权限被拒绝 2020-10-03 18: 04:06.753 14964-15226/com.cloud.fashenista W/SyncTree:收听 /Orders/Users/lDQI2pwcuLfStHEfdC9cbfMsYf92/Products/IVvWWSaVC5YRMZoZs9AO 失败:DatabaseError: Permission denied 错误消息是针对 listen(即:读取)操作的,您没有共享该操作的代码。您需要在/Orders/Users/$uid 处检查您的代码是否有监听器。 【参考方案1】:

错误消息显示您正在尝试读取 /Orders/Users/lDQI2pwcuLfStHEfdC9cbfMsYf92 处的数据,但未定义任何规则 - 因此读取被拒绝。

您需要更新您的安全规则以允许用户阅读他们的订单:


"rules": 
  ...
  "Orders": 
    "Users": 
      "$uid": 
        ".read": "auth != null && auth.uid == $uid"
      
    
  ,

【讨论】:

如何在firebase实时数据库规则中设置变量

...布时间】:2022-01-0505:48:15【问题描述】:所以我的数据库看起来像这样:我的规则是这样的:"rules":".read":true,".write":true,"_default_user":<----thisiswhatIneedtochange"ca 查看详情

复杂的 Firebase 安全规则

】复杂的Firebase安全规则【英文标题】:ComplexFirebaseSecurityRule【发布时间】:2017-08-0705:17:01【问题描述】:我的Firebase数据结构看起来像-isAdmin-user1isAdmin:true-users-user1-firsName:Jane-lastLoggedIn:12March2017-user2-firstName:John-lastLoggedIn:11March2 查看详情

Firebase 实时规则如何检查具有 AutoID 的节点是不是包含正确的数据

】Firebase实时规则如何检查具有AutoID的节点是不是包含正确的数据【英文标题】:FirebaserealtimeruleshowtocheckifnodewithAutoIDcontainscorrectdataFirebase实时规则如何检查具有AutoID的节点是否包含正确的数据【发布时间】:2019-12-0211:27:44【问... 查看详情

Firebase 函数不返回数据

...试从我的Firebase函数中获取数据,但它一直返回空响应。看起来我需要返回一个承诺并在该承诺中返回我的数据,但即使我认为我正在这样做,我似乎也无法让它工作。我对Node.JS不是最熟悉,所以我可能会在promise中返回错误的... 查看详情

用于“秘密”网址共享的 Firebase 实时数据库规则

...网络应用程序,它使用JS与Firebase实时数据库进行交互,看起来像这样:"some-collection":"some-obscure-long-uuid":"nam 查看详情

重写 firebase.json 的规则以配置 firebase 托管

...所有文件托管在Firebase托管上。到目前为止,我的页面URL看起来像mydomain.com/user/index.html?user=username但是 查看详情

如何使用 Firebase 和 useEffect() 正确更新状态?

】如何使用Firebase和useEffect()正确更新状态?【英文标题】:HowtoproperlyupdatestatewithFirebaseanduseEffect()?【发布时间】:2020-03-0115:52:52【问题描述】:我正在尝试从Firebase获取数据,然后将其推送到我的状态。目标是创建一种机制,每... 查看详情

Firebase 电子邮件说我的实时数据库有不安全的规则

】Firebase电子邮件说我的实时数据库有不安全的规则【英文标题】:Firebaseemailsayingmyrealtimedatabasehasinsecurerules【发布时间】:2018-12-2518:51:49【问题描述】:我最近收到了一封来自firebase的电子邮件,告诉我我的实时数据库有不安全... 查看详情

更改规则后无法写入 Firebase

...2016-12-2406:33:25【问题描述】:使用默认规则写入我的实时数据库:"rules":".read":"true",".write":"true"我能够成功地将数据保存到数据库中:我的Android应用中的代码如下所示:DatabaseReferencemDatabaseReferen 查看详情

数据库上的 Firebase 身份验证规则

】数据库上的Firebase身份验证规则【英文标题】:FirebaseauthenticationRuleonDatabase【发布时间】:2018-08-2521:33:32【问题描述】:我必须在我的Firebase数据库中实施一条规则,以防止未经授权的访问(读取、写入)。在我的数据库中,... 查看详情

Firebase 存储安全规则不适用于文件夹

】Firebase存储安全规则不适用于文件夹【英文标题】:Firebasestoragesecurityrulesnotworkingforfolder【发布时间】:2021-01-0605:39:36【问题描述】:我的Firebase存储中有以下规则。但是,当我拥有以“https://firebasestorage.googleapis.com/”开头的链... 查看详情

Firebase 实时电话数据库安全规则

】Firebase实时电话数据库安全规则【英文标题】:Firebaserealtimephonedatabasesecurityrules【发布时间】:2021-02-1315:25:47【问题描述】:我需要一些帮助来保护我的数据库。我的数据库如下所示(我使用的是电话号码而不是uid):您可以... 查看详情

Firebase 安全规则混乱

...已将这些文件放在firebase存储中,并将这些文件的url放在数据库集合中,以便在我的应用程序中使用它们。我不想在我的应用程序上进行任何电子邮件和密码身份验证。我的pdf和视频文件安全吗?任何人都可以访问或获取它们吗... 查看详情

Firebase 规则在设置为 true 时显示权限错误

...布时间】:2021-01-1909:21:05【问题描述】:我有一个简单的数据库结构,我想向其中添加firebase安全规则,但即使我在节点结构下将.read和.write的值设置为true,这些规则也会阻止所有权限,这里是示例规则"rules":"Lines":".rea 查看详情

如何使用 swift 和 firebase 正确使用完成处理程序?

】如何使用swift和firebase正确使用完成处理程序?【英文标题】:HowdoIproperlyusecompletionhandlersusingswift&firebase?【发布时间】:2019-05-0313:36:43【问题描述】:我是swift新手。我正在尝试使用完成处理程序在我的代码中获取给定ID的... 查看详情

即使动画师提供了正确的数据,模型也没有动画

...。得到了一个被操纵的家伙,动画设置在混合树中,一切看起来都很好,值计算正确......但是......模型没有 查看详情

Firebase 存储安全规则

...:我刚刚开始使用Firebase,并且能够读取/写入/编辑/删除数据库。在我的应用中,我只会在用户有权访问数据时向用户显示数据。我通过创建一个用户节点和另一个节点(称为服务)并引用该用户子节点中的服务来做到这一点。... 查看详情

Firebase 实时数据库规则

】Firebase实时数据库规则【英文标题】:Firebasereal-timedatabaserules【发布时间】:2021-01-3118:42:05【问题描述】:这是我的示例数据库:"referrals":"Nr7sS4xV1fO59wjCqbEabLlK8RF3":"16-10-2020":"-MJhjQddWdWDImj98Sov":"city":"hyhy","name":"mmmm","number":"03058852 查看详情