Ошибка типа: subcollection.push не является функцией - PullRequest
0 голосов
/ 01 января 2019

Я использую Cloud Firestore и создаю раздел комментариев, чтобы пользователь мог оставить комментарий для публикации.

код, который я нашел ниже:

 export function saveComment(comment, id, uid) {
     // database = firebase.database().ref('posts/');
     return dispatch => database.child(id).child('comments').push({ 
     content: comment.content, uid })
   }

Код выше, используя базу данных в реальном времени иЯ не могу использовать child () в качестве Cloud Firestore.

Вот мой код:

postActions.js

export const addComment = (postId, comment) => {
  return (dispatch, getState, { getFirebase, getFirestore }) => {
    const firestore = getFirestore();
    const firebase = getFirebase();
    const profile = getState().firebase.profile;
    const user = firebase.auth().currentUser;
    const ref = firestore.doc("posts/"+postId);
    const subcollection = ref.collection('comments')
    subcollection.push(comment)
  };
};

Вместо child (), какую функцию мне нужно использовать?в Cloud Firestore

1 Ответ

0 голосов
/ 01 января 2019

Метод push(), который вы нашли, взят из API базы данных Firebase Realtime, когда вы используете Cloud Firestore.Хотя обе базы данных являются частью Firebase, они полностью разделены и имеют собственный API.

Чтобы добавить новый документ в коллекцию Cloud Firestore, используйте метод add в его CollectionReference.Итак:

subcollection.add(comment)

См. Документацию Firestore о добавлении документа .

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