Как структурировать мои данные в Firebase - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в структуре данных с Firebase.

Я прочитал это: https://firebase.google.com/docs/database/ios/structure-data

Я понял, что необходимо использовать уплощенную структуру.

Но я не уверен, как это сделать в реальном мире.

И я думаю, что для правильного использования Firebase rules мне нужна подходящая структура (но у меня нет с этим опыта).

У меня есть 2 типа данных:

Список деталей:

parts: {
  part1: {
    chapter1: {
      lesson1,
      lesson2,
      ...etc
    },
     chapter2: {
      lesson1,
      lesson2,
      ...etc
    },
     chapterX: {
      ...etc
    },
  },
  part2: {
    chapter1: {
      lesson1,
      lesson2,
      ...etc
    },
     chapterX: {
      ...etc
    },
  },
  partX: {
    ...etc
  }
}

И список пользователей:

users: {
  user1: {
    name,
    email,
    ...etc
  },
  user2: {
    name,
    email,
    ...etc
  },
  user3: {
    ...etc
  },
  etc...
}
  • Каждый пользователь может подтвердить урок, и его ход должен быть сохранен.
  • Если пользователь подтверждает все уроки: он проверяет главу.
  • И если он проверяет все главы: он проверяет часть.

Я собираюсь структурировать свою базу данных Firebase следующим образом:

{
  users: {
    $uid: {
      name,
      email,
      ...
    }
  },
  checked: {
    user1: {
      parts: {
        part1: true
      },
      chapters: {
        chapter1: true,
        chapter2: true
      },
      lessons: {
        lesson1: true,
        lesson7: true,
        lesson15: true,
      }
    },
    user2: {
      parts: {
        part3: true
      },
      chapters: {
        chapter1: true
      },
      lessons: {
        lesson18: true,
        lesson57: true,
      }
    }
  }
}

И для Firebase rules:

{
  "rules": {
    "users": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    },
    "checked": {
      "$uid": {
        ".write": "$uid === auth.uid"
      }
    }
  }
}

Это правильный путь?

В порядке rules В порядке?

Спасибо!

1 Ответ

0 голосов
/ 05 июля 2018

Исходя из предоставленной вами информации, вы поступаете правильно. И правила в порядке. Структура вашей базы данных соответствует тому, как вы хотите их прочитать, поэтому вы делаете все правильно.

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