REST Resource: projects.sites.customDomains

資源:自訂域

CustomDomain是將網域連結到 Firebase 託管網站的實體。將CustomDomain新增至您的網站,以允許託管提供網站內容以回應針對您的網域的請求。

JSON 表示
{
  "name": string,
  "annotations": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "expireTime": string,
  "etag": string,
  "hostState": enum (HostState),
  "ownershipState": enum (OwnershipState),
  "requiredDnsUpdates": {
    object (DnsUpdates)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "certPreference": enum (Type),
  "cert": {
    object (Certificate)
  },
  "redirectTarget": string,
  "reconciling": boolean,
  "labels": {
    string: string,
    ...
  }
}
領域
name

string

僅輸出。 CustomDomain的完全限定名稱。

annotations

map (key: string, value: string)

您可以新增註解以留下有關CustomDomain的人類和機器可讀的元資料。

包含"key": value對。範例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

createTime

string ( Timestamp format)

僅輸出。自訂網域的建立時間。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string ( Timestamp format)

僅輸出。上次更新CustomDomain時間。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

deleteTime

string ( Timestamp format)

僅輸出。 CustomDomain被刪除的時間;對於尚未刪除的自訂網域,為 null。刪除的自訂網域會保留約 30 天,之後託管會將其完全刪除。若要恢復已刪除的自訂網域,請發出customDomains.undelete請求。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

expireTime

string ( Timestamp format)

僅輸出。軟刪除的CustomDomain從託管中完全刪除之前的最短時間;對於尚未刪除的自訂網域,為 null。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

etag

string

僅輸出。一個字串,表示CustomDomain的當前狀態,並允許您在修改它的請求中確認其初始狀態。使用此標記可確保發出customDomains.patchcustomDomains.deletecustomDomains.undelete要求時的一致性。

hostState

enum ( HostState )

僅輸出。此CustomDomain引用的網域的HostState

ownershipState

enum ( OwnershipState )

僅輸出。此CustomDomain引用的網域的OwnershipState

requiredDnsUpdates

object ( DnsUpdates )

僅輸出。您應對網域的 DNS 記錄進行一組更新,以便託管代表其提供安全內容。

issues[]

object ( Status )

僅輸出。主機系統在嘗試建立主機為您的網域提供安全內容的能力時遇到的一組錯誤。解決這些問題以確保您的CustomDomain正常運作。

certPreference

enum ( Type )

此欄位可讓您指定 Hosting 為您的網域建立哪種 SSL 憑證類型。 Spark 計畫自訂網域只能存取GROUPED憑證類型,而 Blaze 計畫網域可以選擇任何選項。

cert

object ( Certificate )

僅輸出。託管擁有此自訂網域的網域的 SSL 憑證。對於新的自訂網域,這通常代表託管建立憑證的意圖,而不是實際的憑證。檢查state字段以了解更多資訊。

redirectTarget

string

CustomDomain應將流量引導至的網域名稱。如果指定,託管將使用 HTTP 301 程式碼回應針對此自訂網域的請求,並將流量路由到指定的redirectTarget

reconciling

boolean

僅輸出。該欄位如果為 true,則表示 Hosting 的系統正在嘗試使自訂網域的狀態與您的首選狀態相符。當在customDomains.create請求後最初配置CustomDomain時,或在customDomains.patch請求後建立新的 SSL 憑證以符合更新的certPreference時,最常見的true是這樣。

labels

map (key: string, value: string)

用於額外元資料和/或過濾的標籤。

包含"key": value對。範例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

主機狀態

您的網域的主機狀態。主機狀態是透過檢查與您的網域關聯的每個 IP 位址來確定它是否正在提供託管內容。

列舉
HOST_STATE_UNSPECIFIED您的自訂網域的主機狀態未指定。如果未指定,則該訊息無效。
HOST_UNHOSTED您的自訂網域的網域名稱未與任何 IP 位址關聯。
HOST_UNREACHABLE無法存取您的自訂網域的網域名稱。託管服務的 DNS 查詢查找您網域的 IP 位址時發生錯誤。有關更多詳細信息,請參閱CustomDomain物件的issues欄位。
HOST_MISMATCH您的自訂網域的網域名稱的 IP 位址最終不會解析為託管。
HOST_CONFLICT您的自訂網域的網域名稱具有解析為託管和其他服務的 IP 位址。為了確保結果一致,請刪除與非託管服務相關的AAAAA記錄。
HOST_ACTIVE針對您的自訂網域的網域的所有請求均由託管提供服務。如果自訂網域的OwnershipState也為ACTIVE ,則託管會在網域上提供您的主機網站的內容。

所有權狀態

您的網域的所有權狀態。一個網域最多可由一個 Firebase 託管網站擁有。所有權可以透過兩種方式確定:

* TXT records: A TXT record on the domain in the form
`hosting-site=[siteId]`.
* CNAME records: A CNAME record that points to a Hosting site's default
domain.

如果您的CustomDomain處於OWNERSHIP_ACTIVE以外的OwnershipState超過 30 天,且至少 30 天內沒有更新,Hosting 的所有權系統會刪除CustomDomain 。若要還原已刪除的CustomDomain ,請發出customDomains.undelete請求。

列舉
OWNERSHIP_STATE_UNSPECIFIED您的自訂網域的所有權狀態未指定。這絕對不應該發生。
OWNERSHIP_MISSING您的自訂網域的網域名稱沒有與託管相關的所有權記錄;沒有 Firebase 專案有權代表域名行事。
OWNERSHIP_UNREACHABLE無法存取您的自訂網域的網域名稱。託管服務會尋找您的網域擁有權記錄的 DNS 查詢發生錯誤。有關更多詳細信息,請參閱CustomDomain物件的issues欄位。
OWNERSHIP_MISMATCH您的自訂網域的網域名稱歸另一個 Firebase 專案所有。刪除衝突的TXT記錄並將其替換為目前 Firebase 專案的專案特定記錄。
OWNERSHIP_CONFLICT您的自訂網域的網域存在衝突的TXT記錄,這些記錄顯示您目前的 Firebase 專案和另一個專案的所有權。刪除其他項目的所有權記錄以授予目前項目所有權。
OWNERSHIP_PENDING您的自訂網域的 DNS 記錄配置正確。託管將在 24 小時內將您的網域所有權轉移到此CustomDomain
OWNERSHIP_ACTIVE您的自訂網域的網域名稱具有TXT記錄,這些記錄會授予其專案代表其執行操作的權限。

DNS更新

您應該進行一組 DNS 記錄更新,以允許託管服務提供安全內容以回應針對您網域的請求。這些更新顯示 Hosting 上次查詢網域 DNS 記錄時的目前狀態,以及 Hosting 在您的自訂網域完全啟動之前需要查看的所需記錄集。

JSON 表示
{
  "discovered": [
    {
      object (DnsRecordSet)
    }
  ],
  "desired": [
    {
      object (DnsRecordSet)
    }
  ],
  "checkTime": string
}
領域
discovered[]

object ( DnsRecordSet )

Hosting 在檢查網域時發現的 DNS 記錄集。

desired[]

object ( DnsRecordSet )

託管需要在網域上提供安全內容的 DNS 記錄集。

checkTime

string ( Timestamp format)

託管上次檢查您的自訂網域的 DNS 記錄。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

DNS記錄集

與 Firebase 託管中自訂網域的設定和維護相關的一組 DNS 記錄。

JSON 表示
{
  "domainName": string,
  "checkError": {
    object (Status)
  },
  "records": [
    {
      object (DnsRecord)
    }
  ]
}
領域
domainName

string

僅輸出。記錄集所屬的網域名稱。

checkError

object ( Status )

僅輸出。查詢網域的 DNS 記錄時託管服務遇到錯誤。注意:託管會忽略NXDOMAIN錯誤,因為這些錯誤通常只表示尚未設定網域。

records[]

object ( DnsRecord )

僅輸出。域上的記錄。

DNS記錄

DNS 記錄是定義系統和服務在處理網域名稱請求時應如何表現的資源記錄。例如,當您將A記錄新增至網域的DNS 記錄時,您就是在通知其他系統(例如您使用者的Web 瀏覽器)聯絡這些IPv4 位址,以擷取與您的網域相關的資源(例如您的託管站點文件) )。

JSON 表示
{
  "domainName": string,
  "type": enum (Type),
  "rdata": string,
  "requiredAction": enum (Action)
}
領域
domainName

string

僅輸出。記錄所屬的域名,例如foo.bar.com.

type

enum ( Type )

僅輸出。記錄的類型,決定記錄包含哪些資料。

rdata

string

僅輸出。記錄的數據。該值的意義取決於記錄類型: - A 和 AAAA:網域名稱的 IP 位址。 - CNAME:另一個用於檢查記錄的網域。 - TXT:與網域名稱關聯的任意文字字串。託管使用 TXT 記錄來確定哪些 Firebase 項目有權代表網域執行操作。 - CAA:記錄的標誌、標籤和值,例如0 issue "pki.goog"

requiredAction

enum ( Action )

僅輸出。一個枚舉,指示此記錄所需的操作。

類型

DNS 記錄的類型,包括ATXTAAAACAA

列舉
TYPE_UNSPECIFIED記錄的類型未指定。如果未指定,則該訊息無效。
A A記錄,如RFC 1035定義。 A 記錄決定網域名稱將流量導向哪些 IPv4 位址。
CNAME CNAME記錄,如RFC 1035定義。 CNAME或規範名稱記錄將網域名稱對應到不同的規範網域。如果存在CNAME記錄,則它應該是網域上的唯一記錄。
TXT TXT記錄,如RFC 1035中定義。 TXT記錄保存網域上的任意文字資料。託管使用TXT記錄來決定哪個 Firebase 專案有權對網域執行操作。
AAAA RFC 3596 AAAA 記錄中定義的 AAAA 記錄決定網域名稱將流量定向到哪些 IPv6 位址。
CAA

CAA 記錄,如RFC 6844中定義。 CAA(即憑證授權單位授權)記錄決定哪些憑證授權單位(SSL 憑證鑄造組織)有權為網域名稱鑄造憑證。 Firebase Hosting 使用pki.goog作為其主要 CA。

CAA 記錄級聯。 foo.com上的 CAA 記錄也適用於bar.foo.com ,除非bar.foo.com有自己的一組 CAA 記錄。

CAA 記錄是可選的。如果網域及其父網域沒有 CAA 記錄,則所有 CA 都有權代表其建立憑證。一般來說,託管僅在需要修改 CAA 記錄以解鎖 SSL 憑證建立時才會要求您修改 CAA 記錄。

行動

操作是您應該對此 DNS 記錄執行的操作,以配置您的網域以與 Firebase 託管一起使用。

列舉
NONE無需採取任何行動。
ADD將此記錄新增至您的 DNS 記錄。
REMOVE從您的 DNS 記錄中刪除此記錄。

類型

證書的類型。確定託管系統如何處理建立和維護憑證。

列舉
TYPE_UNSPECIFIED證書的類型未指定。如果未指定,則該訊息無效。
TEMPORARY一種短期憑證類型,暫時覆蓋域名,而託管則建立更永久的憑證。
GROUPED Spark 計畫自訂網域的標準憑證。
PROJECT_GROUPED僅 Blaze 計劃。涵蓋同一 Firebase 專案中 1 到 100 個具有自訂網域的網域的憑證。
DEDICATED僅 Blaze 計劃。涵蓋單一網域的證書。

證書

SSL 證書,用於為針對您的網域的請求提供端對端加密。 Certificate可以是實際的 SSL 證書,對於新建立的自訂網域,也可以是託管意圖建立的證書。

JSON 表示
{
  "type": enum (Type),
  "state": enum (CertState),
  "verification": {
    object (CertVerification)
  },
  "issues": [
    {
      object (Status)
    }
  ],
  "createTime": string,
  "expireTime": string
}
領域
type

enum ( Type )

僅輸出。證書的類型。

state

enum ( CertState )

僅輸出。證書的狀態。只有CERT_ACTIVECERT_EXPIRING_SOON狀態為網域提供 SSL 覆蓋。如果狀態為PROPAGATING並且託管先前擁有該網域的活動證書,則該先前的活動證書將為該網域提供 SSL 覆蓋,直到目前證書傳播為止。

verification

object ( CertVerification )

僅輸出。您可以將一組 ACME 挑戰添加到您的 DNS 記錄或現有的非 Hosting 託管提供者中,以允許 Hosting 在您將流量指向託管之前為您的網域建立 SSL 憑證。您可以利用這些挑戰作為從舊提供者到託管的零停機過渡的一部分。

issues[]

object ( Status )

僅輸出。 Hosting 在嘗試為您的網域建立憑證時遇到的一組錯誤。解決這些問題以確保託管能夠為您網站的訪客提供安全的通訊。

createTime

string ( Timestamp format)

僅輸出。證書的建立時間。對於TEMPORARY證書,這是託管首次為您的網域產生挑戰的時間。對於所有其他證書類型,這是實際證書的建立時間。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

expireTime

string ( Timestamp format)

僅輸出。證書的過期時間。此後,該憑證將無法再用於在託管和您網站的訪客之間提供安全通訊。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

證書狀態

您的網域的 SSL 憑證的狀態。這可以代表實際憑證的狀態,或者對於新的自訂網域,主機會嘗試建立憑證。

列舉
CERT_STATE_UNSPECIFIED證書的狀態未指定。如果未指定,則該訊息無效。
CERT_PREPARING每個憑證的初始狀態代表主機在向憑證授權單位發出請求之前建立憑證的意圖。
CERT_VALIDATING託管正在驗證網域的 DNS 記錄是否處於允許代表其建立憑證的狀態。
CERT_PROPAGATING該證書是最近創建的,需要時間在託管的 CDN 中傳播。
CERT_ACTIVE該證書處於活動狀態,為其代表的網域提供安全連線。
CERT_EXPIRING_SOON證書即將過期,其上的所有網域都將獲得新證書。
CERT_EXPIRED證書已過期。託管無法再在您的網域上提供安全內容。

證書驗證

您可以使用一組 ACME 質詢來允許託管在將流量引導至託管伺服器之前為您的網域建立 SSL 憑證。使用 DNS 或 HTTP 質詢;沒有必要兩者都提供。

JSON 表示
{
  "dns": {
    object (DnsUpdates)
  },
  "http": {
    object (HttpUpdate)
  }
}
領域
dns

object ( DnsUpdates )

僅輸出。新增至您的 DNS 記錄的TXT記錄,用於確認您讓託管為您的網域建立 SSL 憑證的意圖。

http

object ( HttpUpdate )

僅輸出。新增至您現有的非 Hosting 託管服務的文件,用於確認您讓 Hosting 為您的網域建立 SSL 憑證的意圖。

Http更新

您可以新增至現有的非 Hosting 託管服務中的文件,該文件確認您允許 Hosting 的憑證授權單位為您的網域建立 SSL 憑證的意圖。

JSON 表示
{
  "path": string,
  "desired": string,
  "discovered": string,
  "lastCheckTime": string,
  "checkError": {
    object (Status)
  }
}
領域
path

string

僅輸出。文件的路徑。

desired

string

僅輸出。在路徑中提供的文字字串。

discovered

string

僅輸出。 Hosting 在上次檢查期間是否能夠在指定路徑上找到所需的文件內容。

lastCheckTime

string ( Timestamp format)

僅輸出。託管系統上次檢查文件內容的時間。

RFC3339 UTC「Zulu」格式的時間戳,具有奈秒解析度和最多九個小數位。範例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

checkError

object ( Status )

僅輸出。上次內容檢查期間遇到錯誤。如果為 null,則檢查成功完成。

方法

create

建立一個CustomDomain

delete

刪除指定的CustomDomain

get

取得指定的CustomDomain

list

列出與指定父託管網站關聯的每個CustomDomain

patch

更新指定的CustomDomain

undelete

如果指定的CustomDomain已被軟刪除,則取消刪除它。