TypeError: subcollection.push is not a function












0















I'm using Cloud Firestore and making comment section
so that user can leave comment for post.



some code I found below:



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


The code above using realtime database and I cannot use child() as Cloud Firestore.



Here's my code:



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)
};
};


Instead of child(), What kind of function, I need to use? in Cloud Firestore










share|improve this question





























    0















    I'm using Cloud Firestore and making comment section
    so that user can leave comment for post.



    some code I found below:



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


    The code above using realtime database and I cannot use child() as Cloud Firestore.



    Here's my code:



    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)
    };
    };


    Instead of child(), What kind of function, I need to use? in Cloud Firestore










    share|improve this question



























      0












      0








      0








      I'm using Cloud Firestore and making comment section
      so that user can leave comment for post.



      some code I found below:



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


      The code above using realtime database and I cannot use child() as Cloud Firestore.



      Here's my code:



      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)
      };
      };


      Instead of child(), What kind of function, I need to use? in Cloud Firestore










      share|improve this question
















      I'm using Cloud Firestore and making comment section
      so that user can leave comment for post.



      some code I found below:



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


      The code above using realtime database and I cannot use child() as Cloud Firestore.



      Here's my code:



      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)
      };
      };


      Instead of child(), What kind of function, I need to use? in Cloud Firestore







      javascript reactjs google-cloud-firestore






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 1 at 2:12







      footlessbird

















      asked Jan 1 at 1:41









      footlessbirdfootlessbird

      53




      53
























          1 Answer
          1






          active

          oldest

          votes


















          1














          The push() method you found is from the Firebase Realtime Database API, while you are using Cloud Firestore. While both databases are part of Firebase, they're completely separate and each has their own API.



          To add a new document to a Cloud Firestore collection, use the add method on its CollectionReference. So:



          subcollection.add(comment)


          See the Firestore documentation on adding a document.






          share|improve this answer
























          • Thank you for super fast reply so I changed it as add just like you mentioned and It seems like working now

            – footlessbird
            Jan 1 at 1:50











          • Good to hear. Be sure to study the Firestore documentation for a bit, since an hour or so spent there, will save a multitude of that time down the line.

            – Frank van Puffelen
            Jan 1 at 2:02











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53992549%2ftypeerror-subcollection-push-is-not-a-function%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          The push() method you found is from the Firebase Realtime Database API, while you are using Cloud Firestore. While both databases are part of Firebase, they're completely separate and each has their own API.



          To add a new document to a Cloud Firestore collection, use the add method on its CollectionReference. So:



          subcollection.add(comment)


          See the Firestore documentation on adding a document.






          share|improve this answer
























          • Thank you for super fast reply so I changed it as add just like you mentioned and It seems like working now

            – footlessbird
            Jan 1 at 1:50











          • Good to hear. Be sure to study the Firestore documentation for a bit, since an hour or so spent there, will save a multitude of that time down the line.

            – Frank van Puffelen
            Jan 1 at 2:02
















          1














          The push() method you found is from the Firebase Realtime Database API, while you are using Cloud Firestore. While both databases are part of Firebase, they're completely separate and each has their own API.



          To add a new document to a Cloud Firestore collection, use the add method on its CollectionReference. So:



          subcollection.add(comment)


          See the Firestore documentation on adding a document.






          share|improve this answer
























          • Thank you for super fast reply so I changed it as add just like you mentioned and It seems like working now

            – footlessbird
            Jan 1 at 1:50











          • Good to hear. Be sure to study the Firestore documentation for a bit, since an hour or so spent there, will save a multitude of that time down the line.

            – Frank van Puffelen
            Jan 1 at 2:02














          1












          1








          1







          The push() method you found is from the Firebase Realtime Database API, while you are using Cloud Firestore. While both databases are part of Firebase, they're completely separate and each has their own API.



          To add a new document to a Cloud Firestore collection, use the add method on its CollectionReference. So:



          subcollection.add(comment)


          See the Firestore documentation on adding a document.






          share|improve this answer













          The push() method you found is from the Firebase Realtime Database API, while you are using Cloud Firestore. While both databases are part of Firebase, they're completely separate and each has their own API.



          To add a new document to a Cloud Firestore collection, use the add method on its CollectionReference. So:



          subcollection.add(comment)


          See the Firestore documentation on adding a document.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jan 1 at 1:44









          Frank van PuffelenFrank van Puffelen

          236k29382408




          236k29382408













          • Thank you for super fast reply so I changed it as add just like you mentioned and It seems like working now

            – footlessbird
            Jan 1 at 1:50











          • Good to hear. Be sure to study the Firestore documentation for a bit, since an hour or so spent there, will save a multitude of that time down the line.

            – Frank van Puffelen
            Jan 1 at 2:02



















          • Thank you for super fast reply so I changed it as add just like you mentioned and It seems like working now

            – footlessbird
            Jan 1 at 1:50











          • Good to hear. Be sure to study the Firestore documentation for a bit, since an hour or so spent there, will save a multitude of that time down the line.

            – Frank van Puffelen
            Jan 1 at 2:02

















          Thank you for super fast reply so I changed it as add just like you mentioned and It seems like working now

          – footlessbird
          Jan 1 at 1:50





          Thank you for super fast reply so I changed it as add just like you mentioned and It seems like working now

          – footlessbird
          Jan 1 at 1:50













          Good to hear. Be sure to study the Firestore documentation for a bit, since an hour or so spent there, will save a multitude of that time down the line.

          – Frank van Puffelen
          Jan 1 at 2:02





          Good to hear. Be sure to study the Firestore documentation for a bit, since an hour or so spent there, will save a multitude of that time down the line.

          – Frank van Puffelen
          Jan 1 at 2:02




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53992549%2ftypeerror-subcollection-push-is-not-a-function%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Monofisismo

          Angular Downloading a file using contenturl with Basic Authentication

          Olmecas