Native integration

Firebase integration

Connect Akendor to your Firebase project: articles are saved as documents in your Firestore collection and images in your Cloud Storage. Ideal for headless websites and apps.

Connection parameters

Firestore collection

Enter the name of the collection (for example articles) where Akendor will save the articles.

Firebase Storage folder

Specify the folder in your Firebase Storage bucket where article images will be uploaded. The bucket is optional: if you don't specify it, the project's default bucket is used.

Service account

To let Akendor write to your project you need the JSON file of your service account.

Service account configured and protected

Credentials are hidden for security reasons.

Uploading the JSON

Akendor accepts the entire service account JSON file: you don't need to extract individual keys.

  1. In the Firebase console, open Project settings > Service accounts.
  2. Generate and download a new private key (JSON file).
  3. In Akendor go to Settings > Firebase integration, click "Show JSON" and paste the file's content.

Cosa scrive Akendor nel tuo Firestore

Quando pubblichi, Akendor scrive nella tua collezione un documento per ogni articolo, con i nomi dei campi in inglese. Qui sotto un esempio reale con tutti i campi. Usa i campi di testo e l'array paragraphs per costruire la pagina e ignora quelli che non ti servono.

firestore_article.json
Documento Firestore
{
  "slug": "managing-generalized-anxiety",
  "title": "How to manage generalized anxiety",
  "subtitle": "Practical strategies and clinical insights",
  "summary": "Generalized anxiety calls for a multifactorial approach...",
  "category": "Mental health",
  "language": "en",
  "status": "pubblicato",
  "articleDate": "Timestamp(2026-06-19T10:14:00Z)",
  "lastUpdate": "Timestamp(2026-06-21T08:02:11Z)",
  "image": "https://cdn.example.com/img/anxiety-cover.webp",
  "readingTime": 7,
  "wordCount": "1450",
  "seoTitle": "How to manage generalized anxiety in 2026",
  "metaDescription": "A complete guide to managing generalized anxiety...",
  "keyword": "generalized anxiety",
  "seoScore": 82,
  "seoAudit": {
    "analyzedAt": "2026-06-19T10:14:30.000Z",
    "scores": { "onPage": 84, "readability": 78, "links": 70, "transitionWords": 80, "sentenceLength": 85, "readingTime": 90, "activeVoice": 75, "tone": 88 },
    "strengths": ["Clear focus on one search intent"],
    "weaknesses": ["Few links to other articles of the site"],
    "suggestions": ["Add two internal links in the second section"],
    "tips": ["Shorten the meta description to 155 characters"]
  },
  "embeddingVector": "Vector(768)",
  "tableOfContents": ["What anxiety is", "Physical symptoms"],
  "keyPoints": ["Anxiety is a natural mechanism", "Breathing helps reduce tension"],
  "takeaways": ["Recognize the physical signals before they grow"],
  "paragraphs": [
    {
      "id": "5074accf-3949-4945-8ae0-525e20c99de6",
      "heading": "What anxiety is",
      "content": "<p>Generalized anxiety disorder...</p>",
      "image": "",
      "practicalInsight": {
        "type": "attenzione",
        "boxTitle": "Watch for physical signals",
        "points": ["Sudden racing heart", "Muscle tension"]
      }
    }
  ],
  "faq": [
    { "question": "How long does an anxiety attack last?", "answer": "Usually between 10 and 30 minutes..." }
  ],
  "externalReferences": [
    { "title": "pubmed.ncbi.nlm.nih.gov", "url": "https://pubmed.ncbi.nlm.nih.gov/..." }
  ],
  "remoteDocId": "7Hq2xYb0n5LwEJc9TfRa"
}

Da sapere

articleDate e lastUpdate sono Timestamp di Firestore. seoScore è il punteggio SEO da 0 a 100, calcolato alla pubblicazione, e seoAudit ne contiene il dettaglio (punti di forza e aree da migliorare). embeddingVector è il vettore che Akendor usa per trovare articoli simili: se non ti serve, ignoralo. I valori di status e practicalInsight.type sono codici fissi (pubblicato; consiglio, mito, esempio, attenzione). remoteDocId è l'identificativo del documento nella tua collezione.

Protected credentials

The JSON is encrypted (AES-GCM) before being sent to our servers. Akendor only uses it to write to the collection and folder you specified.

Visibility note

This configuration is only visible if you chose "Firebase" as the website's platform in the Generation tab of the settings.