Xamarin Android 프로젝트에 원격 알림을 구현하려고합니다. 여러 가이드에서 발견 된 단계별 지침을 따라 갔지만 OnTokenRefresh
메서드는 처음에는 호출되지 않습니다. 따라서 내 응용 프로그램이 토큰을받지 못하거나 어떠한 유형의 firebase 등록도하지 않는 것처럼 보입니다.Xamarin Android에서 OnTokenRefresh가 호출되지 않았습니다.
- 내 안드로이드 애플 리케이션에 중포 기지를 추가
google-services.json
- 내 자 마린 안드로이드 프로젝트에
google-services.json
포함을 다운로드 GoogleServicesJson 에 빌드 작업을 설정 나는
AndroidManifest.xml
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" /> <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <category android:name="${applicationId}" /> </intent-filter> </receiver>
이 코드를 삽입 한
확장 클래스를 만들었습니다.
FirebaseInstanceIdService
[Service] [IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })] class FirebaseRegistrationService : FirebaseInstanceIdService { const string TAG = "FirebaseRegistrationService"; public override void OnTokenRefresh() { var refreshedToken = FirebaseInstanceId.Instance.Token; System.Diagnostics.Debug.WriteLine(TAG, "Refreshed token: " + refreshedToken); MainActivity.CurrentActivity.RunOnUiThread(() => RegisterDeviceOnServer(refreshedToken)); } public void RegisterDeviceOnServer(string refreshedToken) { // Custom implementation } }
이미 말했듯이 OnTokenRefresh
은 결코 호출되지 않습니다. 내가 이해할 수없는 것은 : 누가 유효한 토큰을 받기 위해 Firebase 등록을합니까? 누락 된 지시문이 있습니까? 이 등록을하는 방법이 누락 되었습니까? OnTokenRefresh
가 호출되지 않는 이유는 무엇입니까? this document에 따르면
'성공하지 못했습니다'또는 '성공'FirebaseApp 초기화 중입니까? https://stackoverflow.com/a/42159446/4984832 – SushiHangover
MainActivity에서 다음을 실행합니다 :'FirebaseApp.InitializeApp (this);'그러나이 Java 예외를 반환합니다 : "Java.Lang.IllegalStateException : 기본 FirebaseApp가이 프로세스에서 초기화되지 않았습니다.. Firebase ...를 호출하십시오. " –
해결책의 정리를 만들면서 문제를 해결했습니다. 놀랄 만한. –