ネイティブ連携

Firebase 連携

Akendor を Firebase プロジェクトに接続すると、記事は Firestore のコレクションにドキュメントとして、画像は Cloud Storage に保存されます。ヘッドレスのサイトやアプリに最適です。

接続設定

Firestore コレクション

Akendor が記事を保存するコレクション名(例:articles)を入力します。

Firebase Storage フォルダー

記事の画像をアップロードする Firebase Storage バケット内のフォルダーを指定します。バケットは任意で、指定しない場合はプロジェクトのデフォルトバケットが使われます。

サービスアカウント

Akendor がプロジェクトに書き込むには、 サービスアカウントの JSON ファイルが必要です。

サービスアカウントは設定済みで保護されています

認証情報はセキュリティのため非表示になっています。

JSON のインポート

Akendor はサービスアカウントの JSON ファイル全体を受け付けます。キーを 1 つずつ取り出す必要はありません。

  1. Firebase コンソールでプロジェクトの設定 > サービス アカウントを開きます。
  2. 新しい秘密鍵(JSON ファイル)を生成してダウンロードします。
  3. Akendor で「設定 > Firebase 連携」に移動し、「JSON を表示」をクリックしてファイルの内容を貼り付けます。

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.

保護された認証情報

JSON はサーバーに送信される前に暗号化(AES-GCM)されます。Akendor はそれを、指定されたコレクションとフォルダーへの書き込みにのみ使用します。

表示に関する注意

この設定は、設定の生成タブでサイトのプラットフォームとして「Firebase」を選択した場合にのみ表示されます。