В обмене сообщениями внутри приложения Firebae есть некоторые серьезные ошибки.
Я уже написал несколько отчетов об ошибках в Google, но, как всегда, поддержка Google очень старается признать, что их система полна недостатков ...
Я пишу эту информацию здесь, потому что иногда Google любит работать лучше через stackoverflow и предупреждать других пользователей, НЕ ИСПОЛЬЗУЙТЕ СООБЩЕНИЯ В ПРИЛОЖЕНИЯХ В ПРОДУКТНОМ ПРИЛОЖЕНИИ
Firebase в приложениях обмена сообщениями - это новый инструмент Google, позволяющий отправлять всплывающие окна пользователям во время работы приложения ...
API был сделан без кода, все, что вам нужно сделать, это импортировать API и настроить панель управления Firebase (ZERO LINES OF CODING)
https://firebase.google.com/docs/in-app-messaging/get-started
https://www.youtube.com/watch?v=5MRKpvKV2pg
но после его установки около 1% моих сеансов стали получать ошибки.
ДАЖЕ NULLPOINTEREXCEPTION
как я могу сделать что-то не так в API, с которым я не написал ни одной строки кода? (ну, поддержка Firebase все еще говорит, что я делаю что-то не так)
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.inappmessaging.model.MessageType com.google.firebase.inappmessaging.model.InAppMessage.getMessageType()' on a null object reference
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay.extractActions(SourceFile:449)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay.inflateBinding(SourceFile:317)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay.access$400(SourceFile:82)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay$2.run(SourceFile:292)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5753)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
, а также
Fatal Exception: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:910)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:109)
at com.google.firebase.inappmessaging.display.internal.FiamWindowManager.show(SourceFile:62)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay$5$4.run(SourceFile:422)
at android.app.Activity.runOnUiThread(Activity.java:6050)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplay$5.onSuccess(SourceFile:418)
at com.squareup.picasso.ImageViewAction.complete(SourceFile:51)
at com.squareup.picasso.Picasso.deliverAction(SourceFile:558)
at com.squareup.picasso.Picasso.complete(SourceFile:510)
at com.squareup.picasso.Picasso$1.handleMessage(SourceFile:117)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7406)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
для этого последнего крашлитика даже говорят:
Этот сбой обычно вызывается приложением, пытающимся отобразить диалоговое окно.
используя ранее законченную активность в качестве контекста. Например, это
может произойти, если действие вызывает AsyncTask, который пытается отобразить
диалоговое окно, когда оно закончено, но пользователь перемещается назад от
Активность перед выполнением задачи.
Насколько я знаю, я абсолютно ничего не могу сделать, так как у меня нет способа перехватить эти исключения или как-то изменить поведение lib.
Так что если вы хотите добавить этот инструмент в свое приложение, будьте осторожны, он все еще очень нестабилен