简体   繁体   中英

How to get documents from cloud firestore in cloud function with Java Script

I wrote test cloud function that will trigger at adding new like to post in my Cloud Firestore database. In body of the function then I want to get user tokens in order to send notification to him(have not implemented it yet). When I am trying to deploy this cloud function to firebase, I get this error: "error Parsing error: Unexpected token tokensRef". What can be wrong?

const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();

exports.showNotification = functions.firestore
    .document("users/{userId}/posts/{postId}/likes/{joinedId}")
    .onCreate((snap, context) => {
      const userId = context.params.userId;
      const tokensRef = db.collection("users").doc(userId).collection("tokens");
      const snapshot = await tokensRef.get();
      
      snapshot.forEach(doc => {
        console.log(doc.id, '=>', doc.data())
      })
    });

ESlint config:

module.exports = {
  root: true,
  env: {
    es6: true,
    node: true,
  },
  extends: [
    "eslint:recommended",
    "google",
  ],
  rules: {
    quotes: ["error", "double"],
  },
};

You need to declare the function as async , since you use await . Also, you need to return a Promise or a value when all the asynchronous work is complete (more info here in the doc).

exports.showNotification = functions.firestore
    .document("users/{userId}/posts/{postId}/likes/{joinedId}")
    .onCreate(async (snap, context) => {  // <== See async here
      const userId = context.params.userId;
      const tokensRef = db.collection("users").doc(userId).collection("tokens");
      const snapshot = await tokensRef.get();
      
      snapshot.forEach(doc => {
        console.log(doc.id, '=>', doc.data())
      })

      return null;
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM