Я новичок в React Native. Я в основном пытаюсь выполнить интеграцию между моим приложением в React Native и MailChimp, я хочу сделать следующее: с того момента, как пользователь предоставит нам свой адрес электронной почты и отправит форму, для него будет отправлено электронное письмо через MailChimp. , Я использую Firebase для создания собственной базы электронной почты, но я хотел бы автоматизировать задачу отправки через mailchimp, метод, который я использую для сохранения писем в firebase, выглядит следующим образом:
saveEmail() {
var id = firebase.database().ref().child('xxx').push().key;
const valueEmail = this.state.input;
const valueName = this.state.name;
firebase.database().ref('/xxx/' + id).set({
email: valueEmail,
name: valueName
});
//here where the post for the mailchimp API will be carried out
this.setState(
{
isModalVisible: !this.state.isModalVisible,
valid: false,
name: '',
input: ''
}
);
}
Спасибо всем!
Я предлагаю использовать API MailChimp внутри облачной функции. Для получения дополнительной информации прочтите следующее: Firestore: firebase.google.com/docs/firestore/extend-with-functions или с базой данных в реальном времени: firebase.google.com/docs/database/extend-with-functions
Очень хороший! Я не думал об этой возможности, я считаю, что это может быть альтернатива. Спасибо!





здесь все тихо? В середине некоторых исследований и размышлений, возможная задача для решения проблемы, ниже, чтобы выполнить интеграцию между MailChimp и Firebase для приложения React Native.
Прежде всего, сделанное на основе некоторых исследований, рассматривается как база данных на стороне сервера, поскольку я уже использовал базу данных Firebase Realtime, а затем я решил использовать ее в качестве облачных функций для решения этой проблемы, выполнив облачную функцию, которая является проверка состояния базы данных, и когда оно задано, запускается POST для MailChimp API, вот функция, созданная для этого:
const functions = require('firebase-functions');
\\Code suppressed here
exports.onDataAdded = functions.database.ref('/xxx/{id}').onCreate((snap, context) => {
const data = snap.val();
var fetch = require('isomorphic-fetch');
var btoa = require('btoa');
console.info(data.email);
// POST /lists/{list_id}/members
// Add a new list member
var MAILCHIMP_API_KEY = 'Key Here';
var listId = 'Id Here';
// NOTE: mailchimp's API uri differs depending on your location. us6 is the east coast.
var url = 'https://<dc>.api.mailchimp.com/3.0/lists/' + listId + '/members';
var method = 'POST';
var headers = {
'authorization': "Basic " + btoa('randomstring:' + MAILCHIMP_API_KEY),
'Accept': 'application/json',
'Content-Type': 'application/json'
};
var body = JSON.stringify(
{
email_address: data.email,
status: 'subscribed',
'language': data.language,
merge_fields: { FNAME: data.name }
}
);
return fetch(url, {
method,
headers,
body
}).then(resp => resp.json())
.then(resp => {
return console.info(resp)
})
.catch(error => {
throw new Error(error.statusText)
});
});
С этой функцией, созданной в облачных функциях Firebase, с момента, когда выполняется некоторая вставка базы данных реального времени, запускается тот триггер, который запускает эту функцию.
Спасибо за быстрый ответ!!
Он должен обрабатываться на стороне сервера (firebase и т. д.), А не на стороне клиента (реагировать на собственный)