TypeError:subcollection.push不是函数

时间:2019-01-01 01:41:53

标签: javascript reactjs google-cloud-firestore

我正在使用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 :(得分:1)

在使用Cloud Firestore时,找到的push()方法是从Firebase Realtime Database API中获得的。虽然这两个数据库都是Firebase的一部分,但它们是完全独立的,并且每个都有自己的API。

要将新文档添加到Cloud Firestore集合,请在其add上使用CollectionReference方法。所以:

subcollection.add(comment)

请参见Firestore documentation on adding a document