首先,建立起一個 .NET Core 主控制台應用專案,讓我們來體驗一下在 C# 中,使用 Firebase 來存取資料庫的應用。
- 在這個專案中,加入 FirebaseDatabase.net NuGet 套件
- 接著,我們建立一個資料模型類別,用來宣告要儲存在 Firebase 資料庫內的內容。在這裡,我們宣告一個 MyMoney 類別,用來記錄每筆消費紀錄項目。
public class MyMoney
{
public Guid Id { get; set; }
public string Title { get; set; }
public string InvoiceNo { get; set; }
public int Cost { get; set; }
}
- 現在,讓我們開始來使用 Firebase,在這個測試範例程式碼中,我們將會做到:將整個資料表刪除、查詢現在所有的紀錄、刪除指定的紀錄、找出特定的紀錄、修改某筆紀錄、新增10筆紀錄等功能。
完整的測試程式碼
class Program
{
static async Task Main(string[] args)
{
var client = new Firebase.Database.FirebaseClient("https://xamarindb-3408d.firebaseio.com");
var child = client.Child("MyMoneys");
Console.WriteLine("刪除掉所有的資料");
await child.DeleteAsync();
Console.WriteLine("產生 10 筆購物紀錄");
for (int i = 1; i < 10; i++)
{
await child.PostAsync<MyMoney>(new MyMoney()
{
Id = Guid.NewGuid(),
Title = $"冷泡茶 {i} 瓶",
InvoiceNo = $"0000 {i}",
Cost = 20 * i,
});
}
Console.WriteLine("列出 Firebase 中所有的紀錄");
var fooPosts = await child.OnceAsync<MyMoney>();
foreach (var item in fooPosts)
{
Console.WriteLine($"購買商品:{item.Object.Title} 價格:{item.Object.Cost}");
}
Console.WriteLine("查詢購物價格小於 90 的紀錄");
var fooRec = fooPosts.Where(x => x.Object.Cost <= 90);
foreach (var item in fooRec)
{
Console.WriteLine($"購買商品:{item.Object.Title} 價格:{item.Object.Cost}");
}
Console.WriteLine("刪除購物價格小於 90 的紀錄");
var fooRecDeleted = fooPosts.Where(x => x.Object.Cost <= 90);
foreach (var item in fooRecDeleted)
{
await child.Child(item.Key).DeleteAsync();
Console.WriteLine($"購買商品:{item.Object.Title} 價格:{item.Object.Cost} 已經被刪除");
}
Console.WriteLine("列出 Firebase 中所有的紀錄");
fooPosts = await child.OnceAsync<MyMoney>();
foreach (var item in fooPosts)
{
Console.WriteLine($"購買商品:{item.Object.Title} 價格:{item.Object.Cost}");
}
Console.WriteLine("查詢購物價格等於 140 的紀錄");
var foo140Rec = fooPosts.FirstOrDefault(x => x.Object.Cost == 140);
foo140Rec.Object.Cost = 666;
await child.Child(foo140Rec.Key).PutAsync(foo140Rec.Object);
Console.WriteLine($"購買商品:{foo140Rec.Object.Title} 的價格已經修正為 價格:{foo140Rec.Object.Cost}");
Console.WriteLine("列出 Firebase 中所有的紀錄");
fooPosts = await child.OnceAsync<MyMoney>();
foreach (var item in fooPosts)
{
Console.WriteLine($"購買商品:{item.Object.Title} 價格:{item.Object.Cost}");
}
Console.WriteLine("Press any key for continuing...");
Console.ReadKey();
}
}
執行結果
執行這個測試程式,其輸出結果如下所示:
刪除掉所有的資料
產生 10 筆購物紀錄
列出 Firebase 中所有的紀錄
購買商品:冷泡茶 1 瓶 價格:20
購買商品:冷泡茶 2 瓶 價格:40
購買商品:冷泡茶 3 瓶 價格:60
購買商品:冷泡茶 4 瓶 價格:80
購買商品:冷泡茶 5 瓶 價格:100
購買商品:冷泡茶 6 瓶 價格:120
購買商品:冷泡茶 7 瓶 價格:140
購買商品:冷泡茶 8 瓶 價格:160
購買商品:冷泡茶 9 瓶 價格:180
查詢購物價格小於 90 的紀錄
購買商品:冷泡茶 1 瓶 價格:20
購買商品:冷泡茶 2 瓶 價格:40
購買商品:冷泡茶 3 瓶 價格:60
購買商品:冷泡茶 4 瓶 價格:80
刪除購物價格小於 90 的紀錄
購買商品:冷泡茶 1 瓶 價格:20 已經被刪除
購買商品:冷泡茶 2 瓶 價格:40 已經被刪除
購買商品:冷泡茶 3 瓶 價格:60 已經被刪除
購買商品:冷泡茶 4 瓶 價格:80 已經被刪除
列出 Firebase 中所有的紀錄
購買商品:冷泡茶 5 瓶 價格:100
購買商品:冷泡茶 6 瓶 價格:120
購買商品:冷泡茶 7 瓶 價格:140
購買商品:冷泡茶 8 瓶 價格:160
購買商品:冷泡茶 9 瓶 價格:180
查詢購物價格等於 140 的紀錄
購買商品:冷泡茶 7 瓶 的價格已經修正為 價格:666
列出 Firebase 中所有的紀錄
購買商品:冷泡茶 5 瓶 價格:100
購買商品:冷泡茶 6 瓶 價格:120
購買商品:冷泡茶 7 瓶 價格:666
購買商品:冷泡茶 8 瓶 價格:160
購買商品:冷泡茶 9 瓶 價格:180
Press any key for continuing...
了解更多關於 [.NET Core 3.0 的新功能]
Dear老師,
回覆刪除拜讀了您的這篇Firebase文章之後,不知道Firebaseirebase的設定為何?
可以嘗試去 Firebase Console 建立一個資料庫,就可以按照這篇文章的做法來存取資料庫囉
刪除