Вызов облачной функции Firebase из Angular 4 Component - PullRequest
0 голосов
/ 08 июня 2018

Я работаю с Angular 4, базой данных Firebase и облачными функциями.Вопрос: Как я могу вызвать функцию Firebase по клику из моего компонента?

Что я пытаюсь сделать: отправка тестового электронного письма с emailjs по нажатию кнопки.

Мой код:

functions / src / index.ts

import * as functions from 'firebase-functions';
const emailjs = require("emailjs/email");

export const sendMail = functions.https.onRequest((request, response) => {
  var email     = require("./path/to/emailjs/email");
  var server    = email.server.connect({
    user:    "username",
    password:"password",
    host:    "smtp.your-email.com",
    ssl:     true
  });

  // send the message and get a callback with an error or details of the message that was sent
  server.send({
    text:    "i hope this works",
    from:    "you <username@your-email.com>",
    to:      "someone <someone@your-email.com>, another <another@your-email.com>",
    cc:      "else <else@your-email.com>",
    subject: "testing emailjs"
  }, function(err, message) { console.log(err || message); });
})

Мой компонент

sendTestEmail() {
  // From here I want to call the "sendMail" function from Firebase to send an email.
}

Итак: Как я могу вызватьФункция Firebase из моего компонента?

1 Ответ

0 голосов
/ 08 июня 2018

Вы используете Облачная функция HTTP , поэтому вы должны запустить ее, вызвав определенный URL, как описано в документации: https://firebase.google.com/docs/functions/http-events#invoke_an_http_function

После HTTPФункция развернута, вы можете вызвать ее через свой уникальный URL.URL включает в себя следующее, по порядку:

- The region in which your function is deployed
- Your Firebase project ID
- cloudfunctions.net
- The name of your function

Итак, в вашем случае URL для вызова sendMail ():

https://us-central1-<your-project-id>.cloudfunctions.net/sendMail

Вы должны использовать HttpClientСлужба для запуска этого вызова.


Наконец, я бы посоветовал вам посмотреть следующее видео от команды Firebase, в котором подробно описывается, как должны быть написаны функции HTTP Cloud, и, в частности, как отправить ответ вызывающему.:

https://www.youtube.com/watch?v=7IkUgCLr5oA

Вы, вероятно, увидите, что вам необходимо соответствующим образом адаптировать свой код.

...