J'essaye juste d'envoyer un e-mail avec des fonctions cloud
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)
Cela ressemble à un problème DNS. J'ai lu ailleurs (stackoverflow) que vous devez être sur un plan payant pour faire des demandes externes sur les fonctions de firebase. Fonctionne-t-il localement sur votre ordinateur portable ?
@aroach
Fonctionne-t-il localement sur votre ordinateur portable ?
Non, ne fonctionne pas localement.
Est-ce un problème Firebase ou Sendgrid ?
Merci
PS : Je pense que pour localement vous vouliez appeler la fonction localement plutôt que d'être déjà déployée ? Si oui, dans ce cas ma fonction est live
@aroach s'avère que c'était vrai : https://firebase.google.com/support
Et après avoir mis à niveau mon plan, je pourrais envoyer le message.
Merci
Il s'agit d'un problème de base de feu. Si vous utilisez un compte Free (Spark Plan), vous ne pouvez utiliser les services Google que si vous utilisez des services externes, vous devez payer pour cela.
https://firebase.google.com/pricing/
Mettez à niveau votre plan (Plan Flame ou Plan Blaze), vous pouvez envoyer des e-mails via SendGrid.
@ kadnan0900 j'ai mis à niveau vers le plan blaze mais j'obtiens toujours getaddrinfo ENOTFOUND api.github.com api.github. com:443 erreur.
Obtenir également l'erreur. Fait intéressant, cela a fonctionné une fois, puis n'a plus fonctionné. Sur le plan Blaze dans firebase, j'ai vérifié que j'utilise des clés API correctes, les crédits de clé API sont corrects. Test local avec l'émulateur/UI Firebase, obtenant cette erreur.
Utilisant:
"@sendgrid/mail": "^7.1.1",
"firebase-admin": "^8.12.1",
"firebase-functions": "^3.6.2"
Cela ressemble à un problème DNS. J'ai lu ailleurs (stackoverflow) que vous devez être sur un plan payant pour faire des demandes externes sur les fonctions de firebase. Fonctionne-t-il localement sur votre ordinateur portable ?
Son travail localement. Mais pas en déploiement
Obtenir également l'erreur. Fait intéressant, cela a fonctionné une fois, puis n'a plus fonctionné. Sur le plan Blaze dans firebase, j'ai vérifié que j'utilise des clés API correctes, les crédits de clé API sont corrects. Test local avec l'émulateur/UI Firebase, obtenant cette erreur.
Utilisant:
"@sendgrid/mail": "^7.1.1", "firebase-admin": "^8.12.1", "firebase-functions": "^3.6.2"
Pas de chance ? Nous rencontrons nous-mêmes ce problème sur le plan Blaze.
Commentaire le plus utile
Cela ressemble à un problème DNS. J'ai lu ailleurs (stackoverflow) que vous devez être sur un plan payant pour faire des demandes externes sur les fonctions de firebase. Fonctionne-t-il localement sur votre ordinateur portable ?