Просто пытаюсь отправить электронное письмо с облачными функциями
const functions = require('firebase-functions')
const express = require('express')
const cors = require('cors')
const mailService = require('@sendgrid/mail')
const bodyParser = require('body-parser')
//Constants
const SENDGRID_API_KEY = 'Myapikey'
//Set up
const app = express()
app.use(bodyParser.json())
app.use(cors({ origin: true }))
app.post('/send', async (req, res) => {
mailService.setApiKey(SENDGRID_API_KEY)
const { name, email, message } = req.body
const emailContent = {
to: '[email protected]',
from: '[email protected]'',
subject: `subject`,
text: `some message`,
}
try{
const response = await mailService.send(emailContent)
res.json({message: 'message sent'})
} catch(error){
const { message, code, response } = error
res.json({message, response})
}
})
exports.api = functions.https.onRequest(app)
Похоже на проблему с DNS. Я читал в другом месте (stackoverflow), что вам нужно иметь платный план для выполнения внешних запросов к функциям firebase. Он работает локально на вашем ноутбуке?
@aroach
Он работает локально на вашем ноутбуке?
Нет, не работает локально.
Это проблема Firebase или Sendgrid?
Спасибо
PS: Я думаю, что для локального вы имели в виду локальный вызов функции, а не уже развернутую? Если да, в этом случае моя функция активна
@aroach оказывается правдой: https://firebase.google.com/support
И после обновления моего плана я смог отправить сообщение.
Спасибо
Это проблема с огневой базой. Если вы используете бесплатную учетную запись (Spark Plan), вы можете использовать сервисы Google только в том случае, если вы используете внешние сервисы, за которые вам нужно заплатить.
https://firebase.google.com/pricing/
Обновите свой план (план Flame или план Blaze), вы можете отправлять электронные письма через SendGrid.
@ kadnan0900 Я перешел на план Blaze, но все еще получаю getaddrinfo ENOTFOUND api.github.com api.github. com: ошибка
Также появляется ошибка. Интересно, что однажды это сработало, а потом уже не сработало. В плане Blaze в firebase проверено, что я использую правильные ключи API, кредиты ключей API верны. Локальное тестирование с помощью эмулятора / пользовательского интерфейса firebase, получение этой ошибки.
С использованием:
"@sendgrid/mail": "^7.1.1",
"firebase-admin": "^8.12.1",
"firebase-functions": "^3.6.2"
Похоже на проблему с DNS. Я читал в другом месте (stackoverflow), что вам нужно иметь платный план для выполнения внешних запросов к функциям firebase. Он работает локально на вашем ноутбуке?
Он работает локально. Но не при развертывании
Также появляется ошибка. Интересно, что однажды это сработало, а потом уже не сработало. В плане Blaze в firebase проверено, что я использую правильные ключи API, кредиты ключей API верны. Локальное тестирование с помощью эмулятора / пользовательского интерфейса firebase, получение этой ошибки.
С использованием:
"@sendgrid/mail": "^7.1.1", "firebase-admin": "^8.12.1", "firebase-functions": "^3.6.2"
При удаче? Мы сами сталкиваемся с этой проблемой в плане Blaze.
Самый полезный комментарий
Похоже на проблему с DNS. Я читал в другом месте (stackoverflow), что вам нужно иметь платный план для выполнения внешних запросов к функциям firebase. Он работает локально на вашем ноутбуке?