Вы должны использовать функции Firebase, чтобы сделать это здесь, ссылка на учебник.https://firebase.google.com/docs/functions/get-started.
Так что, если бы мне нужно было создать новую папку и выполнить
npm i -g firbase-tools;
firebase init;
, затем выполнить настройку с использованием firbase init, выбрав в качестве выбора правильные «функции» проекта (дляваш реальный проект вам может потребоваться выбрать несколько опций)
затем вы переходите в папку функций /myproject/functions/index.js
Это некоторый код, который я использую и который использует приведенные выше инструкции для сохранения данных в базе данных огняDB.
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
// Take the text parameter passed to this HTTP endpoint and insert it into the
// Realtime Database under the path /messages/:pushId/original
exports.addMessage = functions.https.onRequest((req, res) => {
// Grab the text parameter.
const data = req.query;
// Push the new message into the Realtime Database using the Firebase Admin SDK.
return admin.database().ref('/paymentslog').push({data}).then((snapshot) => {
// Redirect with 303 SEE OTHER to the URL of the pushed object in the Firebase console.
return res.redirect(303, snapshot.ref.toString());
});
});
Таким образом, данные помещаются в /paymentslog
в базе данных Firebase ... мой код настроен так, что ВСЕ в строке запроса добавляется динамически
Так что есливы использовали PHP (file_get_contents
) или AngularCli (http.post
), где выполнялись другие, где бы вы просто использовали заголовок post http для вашего URL, используя квесты вроде https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage?id=9955&&price=123&foo=hello
и сохраните как
/paymentslog/randomkey/id = 9955
/paymentslog/randomkey/price = 123
/paymentslog/randomkey/foo = hello
«Случайный ключ» происходит из-за того, что я использую .push
Я мог бы вместо этого сделать ref('/paymentslog/' + id).set
, чтобы создать
/paymentslog/9955/price = 123
/paymentslog/9955/foo = hello
Когда вы будете готовы проверить это, вы можетесделать firebase deploy
, который загрузит код в ваш проект
Я должен отметить, что вам не нужны учетные данные API, потому что initb firebase устанавливает их для вас.
Для вашего проекта AngularCLI это пример кода для работы http.post
private form_send_url:string = 'https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage';
this._http.post(
this.form_send_url,
{
'id':encodeURI("9955"),
'price':encodeURI("123"),
'foo':encodeURI("hello")
},
{'Content-Type': 'text/html'}
).then(data => {
console.log(data.status);
console.log(data.data); // data received by server
console.log(data.headers);
}).catch(error => {
console.log(error.status);
console.log(error.error); // error message as string
console.log(error.headers);
}).then(() => {
this._navCtrl.push(goto new page);
});
});