2017-03-19 191 views
0

我需要在我的Unity遊戲中爲推送通知設置FCM。對於這一點,我使用的是在火力地堡文檔是提到的初始化代碼:Firebase OnTokenReceived不會在Unity中觸發

public void Start() { 
    Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived; 
    Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived; 
} 

public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) { 
    UnityEngine.Debug.Log("Received Registration Token: " + token.Token); 
} 

public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) { 
    UnityEngine.Debug.Log("Received a new message from: " + e.Message.From); 
} 

遊戲中使用的後端服務GameSparks。我想通知用戶排行榜中的新高分。爲了做到這一點我必須爲推送通知註冊裝置和根據GameSparks的文檔以下代碼用於註冊推:

new PushRegistrationRequest() 
     .SetDeviceOS(deviceOS) 
     .SetPushId(pushId) 
     .Send((response) => { 
     string registrationId = response.RegistrationId; 
     GSData scriptData = response.ScriptData; 
     }); 

pushId取自是如上所述here從調用返回到FirebaseInstanceID.getToken()的註冊ID 。我在這裏做錯了什麼?如果有更好的解決方案,請告訴我。先謝謝你。

+0

需要更多的細節。你收到OnTokenReceived日誌嗎? – Deepscorn

+0

@Deepscorn實際上在編輯器中它不會被調用。但在設備上它確實叫。對不起,以前沒有發佈答案。我很忙。 –

回答

0

如果您不在Android設備上構建和運行Unity項目,您將不會收到令牌。如果你在你的設備上運行,並連接到你的電腦,你可以使用檢查,如果被觸發日誌消息:

adb logcat -s Unity