узел опорного пункта для экспорта данных отчета в формате PDF


Что это мобильная система аварийного приложение сообщения, которое использует опорному пункту в качестве бэкэнда. Когда заканчивается конец аварийного события, я хотел бы записать журнал сообщений в pdf-документ. Я не смог найти редакторов отчетов, которые работают с Firebase. Это означает, что мне, возможно, придется экспортировать это в php mysql. Firebase php SDK, похоже, слишком много для этой задачи. Я уже погуглил на PHP сделать из опорного пункта и большинство ответов связано с использованием опорного пункта на PHP SDK для. Может быть, это единственный способ завершить его?

1 5

1 ответ:

Вы можете использовать PDF Kit (...) на облачных функциях (это все nodeJS, там нет PHP).

На npmjs.com существует несколько пакетов для @firebase-ops, googleapis и @google-cloud.

Для чтения из Firebase и записи в хранилище данных или хранилище данных ; Этот пример сценария все равно потребует ссылки на базу данных и назначения хранилища, чтобы отобразить содержимое PDF (в конечном итоге из шаблона) и ставит его, где ему и место. также смотрите firebase / functions-samples (особенно package.json, который определяет зависимости). npm install -g firebase-tools устанавливает инструменты, необходимые для развертывания; также требуется установить , чтобы быть локально известным (довольно похожим на composer-в то время как удаленно они становятся известными во время процесса развертывания).

Вам понадобится A) Firebase событие onUpdate () в качестве триггера, b) проверьте endTime возвращенного DeltaSnapshot для значения и c) затем визуализируйте и сохраните PDF-документ. код может варьироваться, просто чтобы дать приблизительное представление о том, как он работает в данной среде:

'use strict';

const admin = require('firebase-admin');
const functions = require('firebase-functions');
const PDFDocument = require('pdfkit');
const gcs = require('@google-cloud/storage')();
const bucket = gcs.bucket( 'some-bucket' );
const fs = require('fs');

// TODO: obtain a handle to the delta snapshot

// TODO: render the report
var pdf = new PDFDocument({
    size: 'A4', 
    info: {Title: 'Tile of File', Author: 'Author'}
});
pdf.text('Emergency Incident Report');

pdf.pipe(
    // TODO: figure out how / where to store the file
    fs.createWriteStream( './path/to/file.pdf' )
).on('finish', function () {
    console.log('PDF closed');
});

pdf.end();

Внешний запуск PHP-кода в этом случае, тем не менее, не выполняется на стороне сервера. проблема с ним заключается в том, что внешний сервер не доставит никакого триггера реального времени, и поэтому файл не появится мгновенно, после обновления метки времени (как можно было бы ожидать от базы данных реального времени). можно было бы также добавьтевнешние веб-крючки (или свяжите их с PHP), например. чтобы получить эти PDF-файлы через HTTPS (или даже сгенерированные по запросу HTTPS, для внешнего запуска генерации). для локального тестирования можно использовать команду firebase serve, экономящую много времени по сравнению с firebase deploy.

Суть в том, что можно научить Cloud Function тому, как должны выглядеть PDF-файлы, когда они будут созданы и куда их поместить, как микро-сервис, который не делает ничего другого, кроме как визуализировать эти файлы. сценарии один сценарий должно быть все еще в пределах допустимого диапазона, учитывая все предоставленные подсказки.