为什么我的pushKey没有被添加到我的用户的帖子对象中?

时间:2017-01-27 21:55:23

标签: javascript firebase react-native firebase-realtime-database redux

当用户发帖时,我想获取帖子的pushKey,然后将其添加到User对象中,以便存储在他们制作的帖子列表中。

我认为我的逻辑是正确的,但似乎没有。到目前为止,一切都是控制台记录。

以下是“创建发布”操作:

export const createPostNoImage = (text, firstName, university, avatar) => {
  const timeDate = new Date().getTime();
  const { currentUser } = firebase.auth();
  const { uid } = currentUser;
  const anonAvatarKey = Math.floor(Math.random() * 10);

  return (dispatch) => {
    const pushKey = firebase.database().ref('/social/posts/').push().key;
    const postObject = {
        text,
        comment_count: 0,
        vote_count: 0,
        author: {
          uid,
          anon_avatar_key: anonAvatarKey,
          first_name: firstName,
          photo_avatar: avatar,
          university
        },
        created_at: timeDate,
    };
    firebase.database().ref(`/social/posts/${pushKey}`)
      .update(postObject)
      .then(() => {
        postObject.uid = pushKey;

        addPostIdToProfile(pushKey);

        dispatch({ type: CREATE_POST, payload: postObject });
    });
  };
};

以上工作正常,然后我调用addPostIdToProfile()函数:

const addPostIdToProfile = (pushKey) => {
  const { currentUser } = firebase.auth();
  console.log(pushKey);

  firebase.database().ref(`/social/users/${currentUser.uid}`)
    .update((user) => {
      if (!user.posts) {
        user.posts = {};
      }
      user.posts[pushKey] = true;

      return user;
    });
};

这是在数据库中没有更新的。有人可以告诉我为什么吗?

0 个答案:

没有答案