Firebase Cloud Messaging with image- FCM圖片推播實作方法

ChunYi LI
One Two Swift
Published in
4 min readSep 19, 2019

實作此功能前請確認你的專案已經準備好FCM文字推播功能,我將以已有文字推播功能的前提下幫助你繼續完成文字+圖片推播的前置作業。

如果還沒有準備好文字推播功能可以看Firebase官方文件,一步一步照著做就能實現。

或是很多前輩已經將方法放到他們的medium上,給各位參考。

1.新增Notification Service Extension

在同一個專案內點選工具列 File >New >Target>Notification Service Extension>Next

命名完就可以點選Finish並且Activate

注意我們要的是Notification Service Extension,不是他旁邊的Notification Content Extension

新增好後就可以在旁邊的文件列表找到剛剛新增的notification service extension,第一步就完成了

2.為新增的Extension安裝Firebase/Messaging

找到你的Podfile並且新增這幾行在你的專案的end標籤下方(此方法在Archive階段會造成錯誤,修正方法請見下方。)

完成後要記得下pod install指令。

新增好之後要記得你的Extension的Deployment Target要跟你的main project一致

10/17號補充

這邊所下的 pod 指令雖然可以使整個專案 run 起來,但是會造成同一個專案安裝了兩個相同的 Framework,當你在 Archive 專案時系統會出現multiple commands produce error。

所以必須把 Podfile 修改成以下附圖

3.修改NotificationService.swift檔

在你的NotificationServiceExtension資料夾裡可以找到一個NotificationService.swift檔跟info.plist檔

編輯NotificationService.swift

import FirebaseMessaging

import完之後把第一個call back func 內的

contentHandler(bestAttemptContent)

替換成

FIRMessagingExtensionHelper().populateNotificationContent(bestAttemptContent, withContentHandler: contentHandler)

完成後應該會長這個樣子

然後就大功告成了

Rebuild之後到Firebase後台發個測試訊息

你應該會得到類似這樣的結果

希望大家都順利完成

--

--

ChunYi LI
One Two Swift

Hi this is Chunyi-Li from Taiwan, a junior iOS deveoper