Letsdoit
@Letsdoit
Компьютерный гик.

Правильна ли моя структура базы данных клона твиттера на Firebase?

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

6011b34467ed3987716196.png

И так же, правильно ли написан мой код загрузки твитов на базу данных?
actions.js (VueX)
export default {
  async addTweet(context, payload) {
    const userId = context.rootGetters.userId;
    // const token = context.rootGetters.token;
    const response = await fetch(
      `https://twitter-clone-e8a3c-default-rtdb.firebaseio.com/users/${userId}/tweets.json`,
      {
        method: "POST",
        body: JSON.stringify({
          tweet: payload.tweet,
        }),
      }
    );

    const responseData = await response.json();

    if (!response.ok) {
      const error = new Error(responseData.message || "Failed to fetch.");
      throw error;
    }

    context.commit("addTweet", {
      tweet: payload.tweet,
    });
  },
  async fetchTweets(context) {
    const userId = context.rootGetters.userId;
    // const token = context.rootGetters.token;

    const response = await fetch(
      `https://twitter-clone-e8a3c-default-rtdb.firebaseio.com/users/${userId}/tweets.json`
    );

    const responseData = await response.json();

    if (!response.ok) {
      const error = new Error(responseData.message || "Failed to fetch.");
      throw error;
    }

    const tweets = [];

    for (const key in responseData) {
      const tweet = {
        id: key,
        tweet: responseData[key].tweet,
      };
      tweets.push(tweet);
    }
    setTimeout(() => {
      context.commit("loadTweets", tweets);
    }, 2000);
  },
};
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы