【问题标题】:Deploy Nuxt sitemap with Firebase使用 Firebase 部署 Nuxt 站点地图
【发布时间】:2021-04-26 06:37:07
【问题描述】:

我有一个使用 nuxt 和 firebase 创建的站点地图,但是当我将站点部署到 firebase 时,由于我引用了我的 fireInit 文件,但我的 nuxt.config.file 已移动到我的 firebase 函数文件夹,所以我可以部署它。当我尝试在我的 firebase 函数文件夹中添加 fireInit 文件时,我得到一个错误,因为我在模块外部导入。此外,当我通过注释掉我的异步路由功能来取出我的动态路由时,站点地图不会显示我的自定义域 URL。它显示https://us-central1-PROJECT_NAME.cloudfunctions.net

文件结构

functions/
- nuxt.config (prod)
- index.js

 public/
- _nuxt/ (client)

 src/
 - nuxt.config (dev)

 firebase.json

Nuxt 配置

module.exports = {

     modules: ['@nuxtjs/sitemap'],

    sitemap: {
        hostname: process.env.BASE_URL,
        exclude: ['/listings/create', '/listings/edit', '/profile/**'],
        async routes() {
            const { db } = require('./plugins/fireInit');
            const snapshots = await db.collection('listings').get();
            return snapshots.docs.map((doc) => `/listings/${doc.id}`);
        },
    },
}

./plugins/fireInit

import firebase from 'firebase/app';
import 'firebase/firestore';

const firebaseConfig = {
    apiKey: 'KEY',
    authDomain: 'KEY',
    projectId: 'KEY',
    appId: 'KEY',
    measurementId: 'KEY',
};

// init firebase
!firebase.apps.length ? firebase.initializeApp(firebaseConfig) : '';

// init services
export const db = firebase.firestore();

【问题讨论】:

  • 关于hostname,您的process.env.BASE_URL 似乎是空的。如果 null ,您可以尝试强制该值吗?例如。 hostname: process.env.BASE_URL || 'https://example.com/'
  • 非常感谢!我修复了我的静态链接。你知道如何修复动态链接吗?您还知道 process.env.BASE_URL 在生产中会为空,但在开发中不会?

标签: javascript firebase vue.js google-cloud-firestore nuxt.js


【解决方案1】:

您不能在函数中使用 firebase web 并将其导入到模块之外。 您必须通过 index.js 上的 firebase-admin 阅读 Firestore

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()

在您的站点地图配置中:

sitemap: {
    hostname: 'YOUR HOST',
    exclude: ['/listings/create', '/listings/edit', '/profile/**'],
    async routes() {
      const snapshot = await admin.firestore().collection('listings').get()
        return snapshot.docs.map((doc) => `/listings/${doc.id}`);
    },
},

【讨论】:

    猜你喜欢
    • 2021-07-12
    • 1970-01-01
    • 2017-04-01
    • 2021-04-04
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    相关资源
    最近更新 更多