如何为 Firebase 函数执行域验证

How to perform domain verification for Firebase functions

我想使用 Google 的网站管理员工具为我的 "site" 添加域验证,它完全由 Cloud Functions for Firebase 组成:

https://us-central1-<project-id>.cloudfunctions.net/

但是我不知道如何以成功的方式执行此操作。

推荐的方法是下载并提供带有验证密钥的 HTML 文件。但是,我似乎无法创建带点的函数。

exports['googleKEY.html'] = functions...

尝试部署时失败。

另一种方法是在我的 "homepage" 中放置一个元标记,但这也不起作用,因为我似乎无法创建索引页面。

exports[''] = functions...

exports['index.html'] = functions...

同样失败。

有没有办法只通过函数来​​进行域验证?非常感谢您的指导。

所以...我想我终于可以找到解决方案了。

没有直接的方法来验证 Firebase Functions 域 (https://*.cloudfunctions.net),但验证 Firebase 托管域 (https://*.firebaseapp.com) 很容易 (using verification file)。那么让我们从那个开始吧。

托管中有一个配置选项可以设置 url 重写以提供功能。 (Documented here)

这是上面 link 的修改示例配置,打开 url https://<your-project-id>.firebaseapp.com/covertFnBigben 以调用函数 bigben.

{
  "hosting": {
    "public": "public",

    // Add the following rewrites section *within* "hosting"
    "rewrites": [
      {
        "source": "/covertFnBigben", "function": "bigben"
      }
    ]
  }
}

因此,在成功验证您的 Firebase 托管域后,您可以使用该域调用 Firebase 函数。

我遇到了同样的问题:我想在 Google Search Console 中验证我的域名所有权。但该域实际上是一个 Firebase Cloud Functions 域 (https://*.cloudfunctions.net)。我今天找到了一个超级简单的解决方案:

1) 在 Google Search Console 中添加 属性 时,select 方法 "URL prefix" 并输入您将创建的函数的 url在第 3 步中(即 https://foobar.cloudfunctions.net/googleDomainVerification)。

2) Select 方法 "HTML tag" 并复制 meta-tag.

3) 创建一个在 Firebase Cloud Function 上推送的 https 函数。不要忘记从第 2 步复制您的 meta-tag:

exports.googleDomainVerification = functions.https.onRequest((req, res) => {
    res.status(200).send('<!DOCTYPE html> <html> <head> YOUR_META_TAG_HERE </head> <body> </body> </html>')
})

4) 请稍等,然后在 Google Search Console

上按 "Verify"

就是这样。现在一切都应该可以了:)