Облачные функции для Firebase: поиск admin vs root

Освоение Firebase и JavaScript для кодирования облачных функций; но я думаю, я ищу, может ли кто-нибудь объяснить плюсы и минусы использования следующего для поиска и/или записи в облачных функциях?!

  1. использование admin.database().ref()
    против
  2. root.child()

Я сам пользуюсь admin.database.ref(), а надо ли? Можно ли вместо этого использовать root.child()?


person Learn2Code    schedule 25.04.2017    source источник


Ответы (1)


Я вижу, что вы также задавали этот вопрос в комментариях к моей Firecast на YouTube. Это хороший вопрос. Если вы следили за примерами Cloud Functions для Firebase, возможно, вы видели admin.database().ref().

admin.database().ref() использует SDK администратора Firebase для доступа к данным в базе данных. В качестве ссылки администратора он имеет неограниченный доступ к любой части базы данных.

В видео root = event.data.ref.root ссылка на корень базы данных, где произошло событие .onWrite. ref имеет те же права на чтение и запись, что и пользователь, инициировавший событие. В отличие от admin.database().ref(), он не предоставляет неограниченный доступ. root.child таким образом, доступ к этому конкретному пути в базе данных, если у пользователя есть разрешение на доступ к нему.

Теперь event.data.adminRef.root является ссылкой на базу данных с неограниченным доступом к любой части базы данных. Если это звучит как admin.database.ref(), это потому, что они совершенно одинаковы. В моем случае я выбрал event.data.ref.root, чтобы ограничить количество новых тем, представленных в одном видео. Если вам удобнее использовать SDK администратора, это совершенно нормально.

person Jen Person    schedule 25.04.2017
comment
Спасибо за расширение вашего ответа. Для моего приложения и моей точки зрения использование admin.database().ref() имеет смысл, поскольку позволяет мне иметь более строгие правила безопасности для фактических данных, поскольку облачная функция управляется мной как администратором. Таким образом, у меня могут быть узлы, у которых нет прав на запись, за исключением администратора через admin.database().ref(). - person Learn2Code; 26.04.2017
comment
Привет, не могли бы вы посмотреть на мой вопрос о firebase время задержки"> stackoverflow.com/questions/52523615/ - person Sudhanshu Gaur; 27.09.2018