类型错误:无法读取未定义的属性“uid”

Shw*_*han 1 javascript firebase firebase-realtime-database google-cloud-functions

这是我为 firebase 编写的第一个 javascript 函数。

类型错误:无法读取未定义的属性“uid”

我在 firebase 云函数中遇到此错误。如何解决?

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

    exports.grantSignupReward = functions.database.ref('/users/{uid}/last_signin_at')
      .onCreate(event => {
        const uid = event.params.uid;
        admin.database().ref(`users/${uid}/referred_by`)
          .once('value').then((data) => {
            var referred_by_somebody = data.val();
            if (referred_by_somebody) {
              var moneyRef = admin.database().ref(`/users/${uid}/earned`);
              moneyRef.transaction((current_value)=> {
                return (current_value || 0) + 10;
              });
            }
            return console.log('reddem updated')
          }).catch(error => {
            console.log("Got an error: ",error);
          });
      });
Run Code Online (Sandbox Code Playgroud)

Pet*_*dad 7

云功能已更新,因此您需要对此进行更改:

 exports.grantSignupReward = functions.database.ref('/users/{uid}/last_signin_at')
  .onCreate(event => {
    const uid = event.params.uid;
Run Code Online (Sandbox Code Playgroud)

进入这个:

 exports.grantSignupReward = functions.database.ref('/users/{uid}/last_signin_at')
  .onCreate(snap,context) => {
    const uid = context.params.uid;
Run Code Online (Sandbox Code Playgroud)

更多信息在这里:

https://firebase.google.com/docs/functions/beta-v1-diff#realtime-database