Firebase realtime database 在firebase实时规则中声明函数

Firebase realtime database 在firebase实时规则中声明函数,firebase-realtime-database,firebase-security,Firebase Realtime Database,Firebase Security,我使用firebase realtime作为我应用程序的数据库 当然,我用规则来保护我的数据 所以更多的节点数据库,然后更多的规则,现在有一个大的代码在里面 我的问题是如何定义函数,使我的规则更具可读性,并减少代码 我想要这样 "rules": { function isMerchant(auth){ return "root.child('Merchant').child(auth.token.phone_number).exists()";

我使用firebase realtime作为我应用程序的数据库 当然,我用规则来保护我的数据 所以更多的节点数据库,然后更多的规则,现在有一个大的代码在里面

我的问题是如何定义函数,使我的规则更具可读性,并减少代码

我想要这样

"rules": {

           function isMerchant(auth){
             return "root.child('Merchant').child(auth.token.phone_number).exists()";
           }

           "UsersMetaData" :{
                    "HistoryMarketVisit":{
                      "$visitId":{
                        ".read" :  isMerchant(auth),
                        ".write" :  isMerchant(auth),
                      }
                    },

              },
    },
我看到了同一个问题的答案,但是针对firestore,但希望在firebase实时中实现它


感谢您的帮助

不幸的是,实时数据库规则不支持Firestore中的自定义功能。您必须在需要的地方复制逻辑。

正如Doug所回答的,Firebase实时数据库安全规则本机不支持其中声明的函数


但是,您可以使用Firebase的。Bolt确实支持可调用函数,方法是以手动方式扩展它们,并具有许多其他漂亮的功能。

感谢您的回答,这真的很糟糕,应该得到支持。当您有一个大型数据库时,很难读取或很容易更新规则