我目前正在使用新的Firebase实现构建Adobe Native Extension。我使用以下构造函数初始化应用程序:
public FirebaseNotificationTokenManager(Context context, String apiKey, String appId, String gcmSenderId,
String databaseUrl, String projectId, String storageBucket) {
app = FirebaseApp.initializeApp(context, new FirebaseOptions.Builder().setApiKey(apiKey)
.setApplicationId(appId).setGcmSenderId(gcmSenderId).setDatabaseUrl(databaseUrl)
.setProjectId(projectId).setStorageBucket(storageBucket).build());
if (app == null)
throw new ExceptionInInitializerError("Couldn't initialize Firebase");
}
不会引发任何错误或任何错误。这是我注册设备的地方:
@Override
public void register(final IRegisteredCallback callback) {
Task<InstanceIdResult> result = FirebaseInstanceId.getInstance(app).getInstanceId().
addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
deviceToken = instanceIdResult.getToken();
}
});
}
当我在普通的android应用上运行此代码时,它会按预期运行。它返回设备ID并按预期工作。但是,当我在ANE中运行此代码时,它会引发null引用异常,因为FirebaseInstanceId.getInstance(app)
返回null。
我已将Firebase数据添加到清单:
<!-- Firebase -->
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="default-channel" />
<service
android:name=".firebase.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<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" />
<category android:name="air.com.my.game" />
</intent-filter>
</receiver>
有人遇到类似的错误吗?
在什么情况下 Firebase无法初始化?
我一直在查看日志,但是没有任何有用的信息。
有什么方法可以使Firebase更加冗长?