簡體   English   中英

如何解決此Firebase雲功能錯誤:無法讀取屬性

[英]How to solve this Firebase cloud function Error: Cannot read property

我正在關注一個教程 ,其中在我的項目中添加了一些Firebase Cloud功能(第5步)。 我已成功將雲功能部署到Firebase,但是在Firebase數據庫控制台中手動添加新產品時,沒有任何反應。 我發現Firebase雲功能已觸發,但出現錯誤:“ TypeError:無法讀取未定義的屬性'productId'

我究竟做錯了什么?

const functions = require('firebase-functions');

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


    exports.sendMessage = functions.firestore
        .document('products/{productId}')
        .onCreate(event => {

        const docId = event.params.productId; // <-- error here

        const name = event.data.data().name;
        const productRef = admin.firestore().collection('products').doc(docId)
        return productRef.update({ message: `Nice ${name}! - Love Cloud Functions`})

    });

該教程必須已過時。 發行1.0版時,Functions SDK中的某些更改。 您可以在此處了解有關這些更改的信息

現在將數據庫觸發器傳遞給兩個參數,而不是一個。 新的context參數在參考路徑中包含通配符的值:

exports.sendMessage = functions.firestore
    .document('products/{productId}')
    .onCreate((snapshot, context) => {

    const docId = context.params.productId;

如果要繼續該教程,則必須手動將其所有舊內容轉換為新內容。

好。 因此,感謝Dough Stevensson的回答通知我該語法已經過時,現在有了一個解決方案:

const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);

var db = admin.firestore();

exports.sendMessage = functions.firestore
    .document('products/{productId}')
    .onCreate((snapshot, context) => {

       const docId = context.params.productId;

       const productRef = db.collection('products').doc(docId)
       return productRef.update({ message: `Nice ${name}!`})
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM