Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 云函数仿真程序中未显示对云Firestore(仿真程序)的写入_Firebase_Google Cloud Firestore_Google Cloud Functions_Firebase Hosting_Firebase Tools - Fatal编程技术网

Firebase 云函数仿真程序中未显示对云Firestore(仿真程序)的写入

Firebase 云函数仿真程序中未显示对云Firestore(仿真程序)的写入,firebase,google-cloud-firestore,google-cloud-functions,firebase-hosting,firebase-tools,Firebase,Google Cloud Firestore,Google Cloud Functions,Firebase Hosting,Firebase Tools,我正在为Vue应用程序使用Firebase托管/Firestore/功能。托管+Firestore运行良好。 现在我想添加更多功能,并想添加功能。为了在本地进行测试,我启动了一个Firestore,可以运行所有3个模拟器。 现在,当我启动仿真器并转到托管仿真器时,我可以插入一条记录,该记录也会显示在生产数据库中,但不会触发该函数。它是onCreate。 我部署了这个函数,它工作得很好。我可以看到console.log() 为什么本地/生产写入没有触发云功能 以下是函数: export const

我正在为Vue应用程序使用Firebase托管/Firestore/功能。托管+Firestore运行良好。 现在我想添加更多功能,并想添加功能。为了在本地进行测试,我启动了一个Firestore,可以运行所有3个模拟器。 现在,当我启动仿真器并转到托管仿真器时,我可以插入一条记录,该记录也会显示在生产数据库中,但不会触发该函数。它是onCreate。 我部署了这个函数,它工作得很好。我可以看到console.log()

为什么本地/生产写入没有触发云功能

以下是函数:

export const sendWelcomeEmail = functions.firestore.document('/activeJobsTestDB/{jobId}').onCreate((data,context) => {
  const inputRecord = data.data();
  console.log('here' + inputRecord);
  // const mailOptions = { 
  //   from: '"Spammy Corp." <noreply@firebase.com>',
  //   to: inputRecord.email,
  // };

});

我转到localhost:5000,可以根据需要使用我的应用程序,但该功能未触发。我们将非常感谢您的帮助

在这里回答我自己,以防有人面临这样的问题:我意识到没有办法将云Firestore与本地云功能连接起来。简单的方法是使用一个类似DocumentSnapshot的json,然后通过shell将其传递给函数。使用:

firebase function:shell
var data = require('./testData.json');
sendwelcomeEmail(data)
另一种方法是在firestore emulator中创建本地数据库,将云函数指向firestore emulator。
然后运行hosting emulator,所有3个都应该运行良好

您是否试图通过写入生产云Firestore来触发本地云函数?那是行不通的。如果您想将您的本地web应用程序连接到Firestore emulator,请参阅本指南:谢谢@SamStern。是的,我意识到它不会工作,我必须创建一个本地模拟数据库。我目前正在创建一个json,它表示DocumentSnapshot,然后通过函数shell推送它,以确保它正常工作。无论如何,谢谢。如果您对如何使用模拟器有更多问题,请在firebase tools GitHub repo上提交一个问题@桑斯特恩:谢谢你,伙计!不,我没有更多的问题。我自己在存根数据。
firebase function:shell
var data = require('./testData.json');
sendwelcomeEmail(data)