Объявление функции в правилах реального времени Firebase - PullRequest
0 голосов
/ 20 марта 2020

Я использую FireBase в реальном времени в качестве базы данных для моего приложения и, конечно, я использовал правила для защиты своих данных, поэтому больше базы данных узлов, чем больше правил, и теперь у меня есть большой код внутри

мой вопрос в том, как определить функцию, чтобы сделать мои правила более читабельными и сделать ее менее кодовой

Я хотел бы получить вот так

"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 real time

спасибо за помощь

Ответы [ 2 ]

1 голос
/ 21 марта 2020

Как также ответил Дуг, правила безопасности базы данных Firebase Realtime не имеют встроенной поддержки объявленных функций.

Однако вы можете использовать только язык Firebase Bolt для моделирования безопасности и компилятор . Bolt поддерживает вызываемые функции, расширяя их так же, как если бы вы делали это вручную, и имеет множество других полезных функций.

1 голос
/ 20 марта 2020

К сожалению, правила базы данных реального времени не поддерживают пользовательские функции, как вы видите в Firestore. Вам нужно будет продублировать логи c везде, где это необходимо.

...