云功能的云火库触发

我使用的是Firebase,我想使用Cloud Function的Cloud Firestore触发器。https:/firebase.google.comdocsfunctionsfirestore-events。

我做了一个简单的网络应用,测试云功能的云火库触发器。

但是Cloud Functions不能用。

你能给我点建议吗?先谢谢你。


当我从浏览器上按下载按钮时,我得到了Firestore的响应。firestore

但是,我没有得到Functions的响应,也没有Console.log的 “Hello Trigger!”。functions

这是我的目录结构。

.
├── firebase.json
├── firestore.indexes.json
├── firestore.rules
├── functions
│   ├── index.js
│   ├── package.json
│   └── package-lock.json
├── public
│   ├── index.html
│   └── scripts
│       └── main.js
└── storage.rules

这是index.js。

<!doctype html>
<html lang="ja">
   <body>
      <textarea id="text" class="form-control" name="text" placeholder="ここに英文を入力してください。" maxlength="3000" minlength="1"></textarea>
      <br>
      <div style="text-align:center">
        <input id="download" class="btn btn-primary" type="submit" value="音声をダウンロード">
      </div>

      <script src="/__/firebase/7.14.3/firebase-app.js"></script>
      <script src="/__/firebase/7.14.3/firebase-auth.js"></script>
      <script src="/__/firebase/7.14.3/firebase-storage.js"></script>
      <script src="/__/firebase/7.14.3/firebase-messaging.js"></script>
      <script src="/__/firebase/7.14.3/firebase-firestore.js"></script>
      <script src="/__/firebase/7.14.3/firebase-performance.js"></script>
      <script src="/__/firebase/init.js"></script>

      <script src="scripts/main.js"></script>
   </body>
</html>

main.js

'use strict';

// Saves a new message on the Cloud Firestore.
function saveMessage() {
  // Add a new message entry to the Firebase database.
  return firebase.firestore().collection('messages').add({
    text: messageInputElement.value,
    timestamp: firebase.firestore.FieldValue.serverTimestamp()
  }).catch(function(error) {
    console.error('Error writing new message to Firebase Database', error);
  });
}

// Checks that the Firebase SDK has been correctly setup and configured.
function checkSetup() {
  if (!window.firebase || !(firebase.app instanceof Function) || !firebase.app().options) {
    window.alert('You have not configured and imported the Firebase SDK. ' +
        'Make sure you go through the codelab setup instructions and make ' +
        'sure you are running the codelab using `firebase serve`');
  }
}

// Checks that Firebase has been imported.
checkSetup();

// Shortcuts to DOM Elements.
var messageInputElement = document.getElementById('text');
var submitButtonElement = document.getElementById('download');

// Saves message on form submit.
submitButtonElement.addEventListener('click', saveMessage);

索引.js

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

exports.myFunction = functions.firestore
  .document('messages/messages')
  .onCreate((change, context) => {
    console.log("Hello Trigger!");
    return 0;   

  });

解决方案:

你的函数被设置为在创建一个名为 “messmessages “的文档时触发。 这意味着只有当你在一个名为 “messages “的集合中创建一个ID为 “messages “的消息时,它才会工作。 我很确定这不是你想要的。 如果你想在一个名为 “messages “的集合中触发任何新的文档,你需要一个通配符。

exports.myFunction = functions.firestore
  .document('messages/{id}')
  .onCreate((change, context) => { ... })

我建议回顾一下 文件 来了解触发路径中的通配符。

给TA打赏
共{{data.count}}人
人已打赏
未分类

如果设备无法播放视频,如何为头部添加 "备份 "图片背景?

2022-10-27 22:55:18

未分类

谁负责创建登录表单来获取accessToken?授权服务器还是Angular?[关闭]

2022-10-27 22:55:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索