Firebase Clound Messaging(FCM)的 Notification Payload 裡面有一個 click_action
,顧名思義就是當推播訊息被使用者點擊之後,App 跟隨著要做什麼樣的反應動作,最常見的就是 App 依據 click_action 跳至與通知相關的頁面,我們就來看看如何透過 click_action 來控制顯示不同頁面。
[食譜小菜] 如何知道一個 Task 執行逾時?
Task 是從 .NET 4.0 開始就有的東西,用它來取代傳統的 Thread、ThreadPool 還挺便捷的,但有時候有一些有時效性的 Task,當它執行超過我們規定的時間時我們需要知道,Task.Wait()
可以帶入 millisecondsTimeout
參數,不過它是同步的。
[食譜好菜] 用 SQL Server 的 PIVOT 和 UNPIVOT 將列轉置為欄、欄轉置為列。
- 7457
- 0
- SQL Server
- 2018-05-04
SQL Server 的 PIVOT
及 UNPIVOT
運算子用來將資料表中的欄轉置為列、列轉置為欄,將資料表中指定的欄位做旋轉,因為經常用到的時候就要再 Google 一次,所幸就自己寫一篇記錄一下,而且在轉置的過程中還順便彙總,一個常看到的範例就是計算銷售人員 1 ~ 12 月的銷售金額,並將 1 ~ 12 月當做欄位名稱 SELECT 出來,除此之外還可以拿來對付一些特別的設計。
[食譜好菜] 使用 StackExchange.Redis 對 Redis 執行批次寫入指令
Redis 的效能有體驗過的朋友應該都是有目共睹的,最近遇到一個一次要寫入 16 萬筆資料的場景,測試環境的 VM 規格都是最基本的,在測試環境測試一筆一筆寫入要大概將近 20 分鐘,而且還會 Timeout,心想即使規格不高 16 萬筆應該也不至於這麼慢吧,爬了一下文大概找到了兩種解法。
[小菜一碟] LiteDB 的資料庫檔案還可以改放在記憶體內
如果我們在程式執行期間有暫存資料的需求,不一定都一定要儲存在磁碟機,假使資料的生命週期是在執行期間內,放在記憶體內也是一個選項,LiteDB 的資料庫檔案除了放在磁碟機,還可以改儲存在記憶體中,而且只要改一個地方就可以。
[食譜好菜] LiteDB 查詢怎麼愈來愈慢?Index 建了嗎?
上一篇介紹 LiteDB 基本的 CRUD,但是我相信這還是有點不太夠的,隨著寫入的資料愈來愈多,做非主鍵條件查詢肯定是會愈來愈慢的,LiteDB 在沒有建 Index 的情況之下,如果查詢條件不是主鍵,它是對整個 DB 做 Full Document Scan,意謂著 LiteDB 必須將每一筆資料反序化出來之後一筆一筆去比對,不僅慢又浪費記憶體。
[小菜一碟] 我要儲存進 LiteDB 的資料 PrimaryKey 名稱不叫 Id 怎麼辦?
LiteDB 預設會拿我們類別裡面名稱為 Id 的屬性來當作 PrimaryKey,如果我們的類別裡面沒有名稱為 Id 這個屬性會怎樣? 會發生 Exception!這是 LiteDB 預設的一個限制,那如果我們的 PrimaryKey 就不叫 Id 要怎麼辦?我們就來看一下怎麼解決?
[食譜好菜] 輕巧方便的 LiteDB
LiteDB 是一個 Document-Oriented 的資料庫,是屬於 NoSQL 這一邊的,經常被拿來跟 SQL 陣營的 SQLite 比較,不過我個人是覺得這沒什麼好比的,都很好用,但是 LiteDB 不用下 SQL 語法,而且它有支援到 .Net Standard 2.0,意謂著 LiteDB 是可以跨平台的,我們可以在 Windows、Linux、macOS、Android、iOS 上使用它,非常適合在 Local 端拿來儲存資料,甚至於網站在 POC 期間這種使用者人數不多的情況之下,都可以先用 LiteDB 撐著。
[廚餘回收] Xamarin.Forms Android 渲染 HTML 內容靠左、置中、靠右無效的問題。
Xamarin.Forms Android 要顯示 HTML 內容在一個 Label 上,網路上已經有許多範例,直接 Google 就可以找到答案,但通常都只能做很簡單的樣式,無法像在瀏覽器上那樣豐富,不過我要在這邊說一個有關於文字內容靠左、置中、靠右神奇的故事,如果我們去搜尋有關於這方面的訊息時,結論大都是「不支援」,是這樣的嗎?
[料理佳餚] Xamarin.Forms 中不同的 DataItem 如何指定使用不同的 DataTemplate
這個用舉例的比較好說,假定我有一個 Car 集合,裡面有各式各樣的車種,要用一個 ListView 把車種名稱顯示出來,最簡單就是去定義一組 DataTemplate 裡面有一個 Label 把 Car 的 Name 綁定上去就可以了,但是保時捷說我們的名稱要用 Button 來呈現,哦~好~客戶最大,客戶說了算,那要怎麼弄?