узел опорного пункта для экспорта данных отчета в формате PDF
Что это мобильная система аварийного приложение сообщения, которое использует опорному пункту в качестве бэкэнда. Когда заканчивается конец аварийного события, я хотел бы записать журнал сообщений в pdf-документ. Я не смог найти редакторов отчетов, которые работают с Firebase. Это означает, что мне, возможно, придется экспортировать это в php mysql. Firebase php SDK, похоже, слишком много для этой задачи. Я уже погуглил на PHP сделать из опорного пункта и большинство ответов связано с использованием опорного пункта на PHP SDK для. Может быть, это единственный способ завершить его?
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, для внешнего запуска генерации). для локального тестирования можно использовать команду
Суть в том, что можно научить Cloud Function тому, как должны выглядеть PDF-файлы, когда они будут созданы и куда их поместить, как микро-сервис, который не делает ничего другого, кроме как визуализировать эти файлы. сценарии один сценарий должно быть все еще в пределах допустимого диапазона, учитывая все предоставленные подсказки.firebase serve
, экономящую много времени по сравнению сfirebase deploy
.