目錄
了解火池
設置firebase
創建一個firebase項目
創建Web Firebase應用程序
啟用身份驗證提供商
創建Firestore數據庫
用戶身份驗證
匿名身份驗證
Google身份驗證
監視身份驗證狀態
將客人轉換為永久用戶
處理帳戶合併錯誤
數據可視化和實時數據流
NOSQL數據庫中的數據建模
將數據流到可視化
使用Firebase安全規則保護數據庫
結論
首頁 web前端 css教學 火箱速成課程

火箱速成課程

Mar 26, 2025 am 11:24 AM

火箱速成課程

該前端開發人員指南揭開了火底的奧秘。我們將探討Firebase的功能,其好處和實際例子。但是首先,簡短的歷史...

八年前,安德魯·李(Andrew Lee)和詹姆斯·坦普林(James Tamplin)推出了一家實時聊天創業公司Envolve。 Ricky Martin和Limp Bizkit等名人用戶的推動,其成功源於其易用性和快速消息傳遞。 Envolve是一個簡單的聊天小部件 - 添加到處理所有內容的頁面上的腳本標籤。它有效地為聊天消息提供了預製的數據庫和服務器。

隨著Envolve的發展,出現了一個令人驚訝的趨勢:開發人員不僅在聊天,而且是出於各種目的(game數據,高分,高分,應用程序設置等)使用的(通常是看不見的)小部件。他們利用小部件的實時功能來實現無縫數據同步,繞開了對複雜的後端開發的需求。

這種頓悟導致了火基的創建。創始人設想了一個平台,使開發人員能夠迅速構建和擴展應用程序,從而消除了後端基礎設施的負擔,並允許他們專注於前端。

了解火池

firebase只是一個數據庫嗎?並非完全。雖然最初是一個實時雲數據庫,但Firebase已演變為一個全面的平台,涵蓋了開發人員的基礎架構和營銷人員工具。目前,它擁有19種集成產品,每種產品旨在支持應用程序開發的特定方面,並為應用程序性能和用戶行為提供寶貴的見解。這些產品可以單獨或集體使用以形成完整的後端解決方案。

這是對Firebase的各種產品的一瞥:

  • 託管:每個github拉的請求都輕鬆部署網站更新。
  • Firestore:無服務器管理的實時數據庫功能,甚至離線。
  • Auth:使用各種提供商的用戶身份驗證和管理。
  • 存儲:用於用戶生成的內容的安全存儲(圖像,視頻等)。
  • 雲功能:由事件(數據創建,用戶註冊等)觸發的無服務器功能。
  • 擴展:帶有用戶界面的預構建功能(例如,條紋付款,翻譯服務)。
  • Google Analytics(分析):全面的用戶活動跟踪和分析。
  • 遠程配置:用於功能標誌和A/B測試的動態鍵值存儲。
  • 性能監控:詳細的性能指標和自定義痕跡。
  • 雲消息傳遞:跨平台推送通知。

這只是Firebase功能的一小部分。您無需使用每種服務;為您的項目選擇相關工具是完全可以接受的。讓我們深入研究實際應用。

以下各節將指導您設置Firebase並使用嵌入式示例演示其功能。這是一個高級概述,而不是分步教程。有關詳細的教程,請發表評論!

設置firebase

如果您打算將演示應用程序與自己的Firebase後端集成在一起,則本節至關重要。如果您熟悉Firebase項目,請跳過此問題。

Firebase是基於雲的,需要初始帳戶設置。但是,使用本地模擬器可能會脫機開發。本指南使用Codepen,需要建立雲連接。該過程涉及創建一個燃料項目,並檢索用於前端集成的必要配置。

創建一個firebase項目

導航到火箱控制台。您現在可以跳過Google Analytics(分析)設置。

創建Web Firebase應用程序

創建一個新的Web應用程序並為其分配一個名稱。火箱項目可以包含多個應用程序。創建後,您將收到一個配置對象:

令Firebaseconfig = {
  Apikey:“你的鑰匙”,
  Authdomain:“您的domain.firebaseapp.com”,
  ProjectID:“您的項目”,
  儲藏室:“ your-projectid.appspot.com”,
  Messagingsenderid:“ your-senderid”,
  appid:“ your-appid”,
  測量值:“您的測量”
};
登入後複製

這種配置將您的前端連接到火底。在您的前端代碼中包括這些屬性是安全的。安全機制將在稍後解釋。

現在,讓我們以代碼表示此應用。該應用程序充當跨火基服務的共享邏輯和身份驗證的容器。我們將使用來自CDN的Firebase庫(儘管也支持模塊捆綁器)。

 //這支筆通過codepen中的“添加外部腳本”選項添加firebase
// https://www.gstatic.com/firebasejs/8.2.10/firebase-app.js
// https://www.gstatic.com/firebasejs/8.2.10/firebase-auth.js

//在Firebase控制台上創建一個項目
//(console.firebase.google.com)
令Firebaseconfig = {
  Apikey:“你的鑰匙”,
  Authdomain:“您的domain.firebaseapp.com”,
  ProjectID:“您的項目”,
  儲藏室:“ your-projectid.appspot.com”,
  Messagingsenderid:“ your-senderid”,
  appid:“ your-appid”,
  測量值:“您的測量”
};

//創建您的Firebase應用程序
讓FirebaseApp = firebase.Initializeapp(firbaseconfig);
// auth實例
console.log(firebaseapp.auth());
登入後複製

接下來,啟用所需的壁壘服務。

啟用身份驗證提供商

這些示例利用身份驗證用於用戶登錄和數據安全。最初,出於安全原因,身份驗證提供商被禁用。在“身份驗證”選項卡中啟用Google和匿名登錄方法。請記住,將Codepen添加為用於測試目的的授權域(但在生產中刪除)。

創建Firestore數據庫

在“測試模式”中創建Firestore數據庫。安全將稍後解決。

現在,讓我們探索現實世界中的用例。

用戶身份驗證

應用功能通常需要用戶帳戶。讓我們探索匿名身份驗證和Google登錄。

匿名身份驗證

Firebase的匿名身份驗證允許用戶無需註冊即可訪問該應用程序,從而為數據關聯提供了臨時用戶ID。

(代碼示例演示匿名登錄和配置文件更新,以簡短省略)

Google身份驗證

Google登錄與匿名身份驗證相似。

(為簡短而省略的Google登錄的代碼示例)

監視身份驗證狀態

onAuthStateChanged方法跟踪身份驗證的更改,從而根據登錄狀態啟用UI更新。

(為簡短而省略了onAuthStateChanged代碼示例)

將客人轉換為永久用戶

使用linkWithRedirect可以將訪客帳戶升級到永久帳戶。

(代碼示例演示為簡潔而省略的帳戶的示例)

處理帳戶合併錯誤

在帳戶合併期間,錯誤處理至關重要。

(代碼示例說明省略了錯誤處理的代碼)

數據可視化和實時數據流

本節重點是創建餅圖並將其與Firestore數據同步。

(為簡潔而省略的圓錐級別和CSS自定義屬性的說明)

(代碼示例演示Firestore數據檢索和餅圖更新省略了)

NOSQL數據庫中的數據建模

Firestore是一個NOSQL文檔數據庫,具有收集和文檔的層次結構。數據建模涉及使用收集和子收集有效地構建數據。

(證明firestore數據檢索和查詢的代碼示例為簡潔而省略)

將數據流到可視化

Firestore的.onSnapshot()方法啟用實時數據流。

(代碼示例演示了為簡潔而省略的實時數據流的代碼)

使用Firebase安全規則保護數據庫

安全規則控制Firebase中的數據訪問。它們在服務器上以每個請求進行評估。

(說明安全規則和為簡潔而省略的示例)

結論

本指南涵蓋了使用Firebase的用戶身份驗證,數據建模,實時數據同步和數據庫安全性。請記住要探索其他壁爐資源以進行進一步學習。 Firebase簡化了後端管理,使開發人員可以專注於前端。

以上是火箱速成課程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue團隊完成了完成,我知道這是一項巨大的努力,而且很長時間。所有新文檔也是如此。

使用Redwood.js和Fauna構建以太坊應用 使用Redwood.js和Fauna構建以太坊應用 Mar 28, 2025 am 09:18 AM

隨著最近比特幣價格超過20k美元的攀升,最近打破了3萬美元,我認為值得深入研究創建以太坊

您可以從瀏覽器獲得有效的CSS屬性值嗎? 您可以從瀏覽器獲得有效的CSS屬性值嗎? Apr 02, 2025 pm 06:17 PM

我有人寫了這個非常合法的問題。 Lea只是在博客上介紹瞭如何從瀏覽器中獲得有效的CSS屬性。那樣的是這樣。

帶有粘性定位的堆疊卡和一點點的雜物 帶有粘性定位的堆疊卡和一點點的雜物 Apr 03, 2025 am 10:30 AM

前幾天,我發現了科里·金尼文(Corey Ginnivan)網站上的這一點,當您滾動時,彼此之間的卡片堆放集。

在CI/CD上有點 在CI/CD上有點 Apr 02, 2025 pm 06:21 PM

我說的“網站”比“移動應用程序”更合適,但我喜歡Max Lynch的框架:

比較瀏覽器的響應式設計 比較瀏覽器的響應式設計 Apr 02, 2025 pm 06:25 PM

這些桌面應用程序中有許多目標是同時在不同的維度上顯示您的網站。因此,例如,您可以寫作

在WordPress塊編輯器中使用Markdown和本地化 在WordPress塊編輯器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我們需要直接在WordPress編輯器中向用戶顯示文檔,那麼最佳方法是什麼?

為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? 為什麼Flex佈局中的紫色斜線區域會被誤認為是'溢出空間”? Apr 05, 2025 pm 05:51 PM

關於Flex佈局中紫色斜線區域的疑問在使用Flex佈局時,你可能會遇到一些令人困惑的現象,比如在開發者工具(d...

See all articles