Reactjs 在React本机应用程序中与mailchimp集成

Reactjs 在React本机应用程序中与mailchimp集成,reactjs,firebase,react-native,mailchimp,Reactjs,Firebase,React Native,Mailchimp,我是英语初学者。我基本上是在尝试在React Native和MailChimp中执行应用程序之间的集成,我想做的是:从用户向我们提供电子邮件并发送表单的那一刻起,然后通过MailChimp触发电子邮件,我使用Firebase创建我自己的电子邮件库,但我想通过mailchimp自动化发送任务,我在firebase中保存电子邮件的方法如下: saveEmail() { var id = firebase.database().ref().child('xxx').push().key;

我是英语初学者。我基本上是在尝试在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: ''

        }
    );
}

谢谢大家

这里一切都安静吗? 在一些研究和思想的中间,一个问题解决的可能任务,在下面执行MelCHIMP和FielBASE之间的集成以反应原生应用。 首先,根据一些研究,被视为服务器端数据库,因为我已经在使用Firebase实时数据库,然后我决定使用它作为云函数来解决这个问题,通过做一个云函数来检查数据库的状态,当它被提供时,会触发一个发送到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.log(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.log(resp)
        })
        .catch(error => {
            throw new Error(error.statusText)
        });
});
const functions=require('firebase-functions');
\\此处禁止使用代码
exports.onDataAdded=functions.database.ref('/xxx/{id}')。onCreate((快照,上下文)=>{
const data=snap.val();
var fetch=require('isomorphic-fetch');
var btoa=要求('btoa');
console.log(data.email);
//POST/lists/{list_id}/members
//添加新的列表成员
var MAILCHIMP_API_KEY='KEY Here';
var listId='Id Here';
//注意:mailchimp的API uri因您的位置而异。us6是东海岸。
var url='1〕https://.api.mailchimp.com/3.0/lists/“+listId+”/members”;
var方法='POST';
变量头={
“授权”:“基本”+btoa('randomstring:'+MAILCHIMP_API_密钥),
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”
};
var body=JSON.stringify(
{
电子邮件地址:data.email,
状态:'已订阅',
“语言”:data.language,
合并_字段:{FNAME:data.name}
}
);
返回获取(url{
方法,,
标题,
身体
}).then(resp=>resp.json())
。然后(resp=>{
返回控制台日志(resp)
})
.catch(错误=>{
抛出新错误(Error.statusText)
});
});
通过在Firebase的云函数中创建此函数,从插入实时数据库的那一刻起,触发此函数的触发器即被触发


谢谢你的快速回复

它应该在服务器端(firebase等)处理,而不是在客户端(react native)处理。我建议在云函数中使用MailChimp API。阅读以下内容了解更多信息:Firestore:或使用实时数据库:非常好!我没有想到这种可能性,我相信这可能是另一种选择。非常感谢。