Запись данных в поле в базе данных Firebase в реальном времени без аутентификации - PullRequest
0 голосов
/ 23 февраля 2019

Я создаю приложение реакции для загрузки музыки.Когда музыка загружается, у меня есть счетчик, представляющий количество раз, когда она была загружена, и я использую транзакцию Firebase для обновления количества раз, когда она была загружена:

  static increaseDownload(id) {  
    firebaseDB.ref("musics/" + id).transaction(musique => {
      if (musique) {
        musique.downloaded++;
      }
      return musique;
    });
  }

enter image description here

Я знаю, что согласно правилам безопасности, пользователи должны быть аутентифицированы для записи / чтения в БД, но я не хочу регистрироваться и входить в систему пользователей, и я также неЯ не хочу ставить ".write": true для всех данных в моей базе данных.Я хочу, чтобы пользователи могли просто заходить на сайт и скачивать.

Мой вопрос: как я могу увеличить счетчик скачиваний, позволяя неаутентифицированным пользователям писать ТОЛЬКО в это "загруженное" поле??Я хочу, чтобы пользователи, не прошедшие проверку, могли писать только в это «загруженное» поле, во все остальные поля, и данные не будут доступны для записи без аутентификации.

1 Ответ

0 голосов
/ 23 февраля 2019

[EDIT] Вы можете разрешить доступ к дочернему узлу «musics», который «загружен», только тогда, когда другая информация в вашей базе данных остается приватной и недоступной.добавьте это правило вашей базы данных

 
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
   "rules": {
      ".read": "false",
        ".write": "false",
    
     "musics":{
     "downloaded":{
       ".read": true,
         ".write": true
       }   
     } 
  }
}
...