Ошибка симуляции в моем правиле базы данных Firebase - PullRequest
0 голосов
/ 10 февраля 2020

Это мой узел, Джейсон:

{
  "Users' Input History" : {
    "TdtIwvAPewRr1l9HY67PfkLBPbn2" : {
      "-M-eylUaQcCpoyTLwbhk" : "fate"
    }
  },
  "Users' Vocabulary List" : {
    "TdtIwvAPewRr1l9HY67PfkLBPbn2" : {
      "-M-eyxRLoCpDftWQ4cDn" : "hardliner"
    }
  }
}

Этот "TdtIwvAPewRr1l9HY67PfkLBPbn2" - это идентификатор пользователя, который может читать и записывать свое собственное значение (здесь это "судьба") в разделе "Пользователи". «История ввода» и значение (в данном случае это «hardliner») в узле «Список словаря пользователей».

Этот Джейсон будет go включаться и иметь несколько пользователей (uids) и их собственные несколько значений. Каждый новый пользователь (uid) будет заполняться как узлом «История ввода пользователей», так и узлом «Список словаря пользователей», а новые значения этого нового пользователя будут заполняться под новым uid.

Например, я хочу, чтобы пользователь A (uid A) мог читать и записывать только свои собственные значения и не мог читать и записывать значения других пользователей (uid B, C, D и т. Д.) , поэтому я написал свое правило базы данных примерно так:

{
  "rules": {
    "Users' Input History": {
      "$uid": {
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    }
  },

    "Users' Vocabulary List": {
      "$uid": {
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    }
}

Однако, как показано на рисунке ниже, я получаю эту ошибку, говоря, что Симуляция завершилась неудачно в строке 12: Ожидается '}'. Обратите внимание, что красная строка в строке 12 и метка ^ в строке 13. Simulation with an error


Что я пробовал: я добавил '}' прямо перед словарем "Users" Список". Это не сработало, а потом я добавил прямо перед "$ uid". Оба привели меня к одному и тому же сообщению об ошибке: Parse error. Я не знаю, что еще я могу попробовать. Мое правило неверно и как я могу это исправить?

1 Ответ

1 голос
/ 10 февраля 2020

Ваш вложенный ребенок для "Списка словаря пользователей" выглядит не в том месте. Переместите его вверх внутри объекта "rules".

{
  "rules": {
    "Users' Input History": {
      "$uid": {
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    },

    "Users' Vocabulary List": {
      "$uid": {
        ".read": "auth.uid == $uid",
        ".write": "auth.uid == $uid"
      }
    }

  }

}
...