Правила базы данных Firebase. Невозможно записать данные - PullRequest
0 голосов
/ 07 сентября 2018

Я новичок в правилах Firebase. И я не могу записать данные на пользовательский узел, который в данный момент вошел в систему. Моя структура БД:

userdata: {
  profile: {
    Lp6Sj763bVUXlisPJyaLM3gbns73: {
      name: "sample"
      avatar: "sample.png",
      userid: "albdchalwe"
    },
    FRw6J6GWK6YbvhuaaHNzPtLRSHJ2: {
      name: "sample"
      avatar: "sample.png",
      userid: "calisdnca"
    }
  },
  additionaldata: {
    Lp6Sj763bVUXlisPJyaLM3gbns73: {
      notifications: {
        0: {
          notificationId: "cbawln"
          receviedon: 12212
        },
        1: {
          notificationId: "cbawln"
          receviedon: 12212
        }
      }
    },
    FRw6J6GWK6YbvhuaaHNzPtLRSHJ2: {
      notifications: {
        0: {
          notificationId: "cbawln"
          receviedon: 12212
        },
        1: {
          notificationId: "cbawln"
          receviedon: 12212
        }
      }
    }
  }

И хотел предоставить доступ на запись к узлу, связанному с текущим вошедшим пользователем. Мои правила базы данных:

{
  rules: {
    userdata: {
     profile: {
       .read: "auth != null",
       .indexOn: ["name"]
       $userId: {
         avatar: {
           .write: "$userId == auth.uid"
         },
         avatar: {
           .write: "$userId == auth.uid"
         }
         userid: {
           .write: "$userId == auth.uid && !data.exists()"
         }
       }
     }
   }
 }

Пользовательский узел в профиле содержит больше узлов. Я просто добавил 3 подузла для пользовательского узла, чтобы понять структуру. Оставьте узел дополнительных данных на данный момент.

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

[enter image description here

enter image description hereenter image description here

Может кто-нибудь помочь мне исправить это. Заранее спасибо.

1 Ответ

0 голосов
/ 07 сентября 2018

Это потому, что вы пишете в /userdata/profile/$uid вместо /userdata/profile/$uid/avatar, где определен .write?(Это также дублируется в вашем примере)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...