Files
UnrealEngine/Engine/Plugins/Runtime/Firebase/Source/Private/Firebase.cpp
2025-05-18 13:04:45 +08:00

42 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Firebase.h"
DEFINE_LOG_CATEGORY(LogFirebase);
void IFirebaseModuleInterface::StartupModule()
{
}
void IFirebaseModuleInterface::ShutdownModule()
{
}
class FFirebaseModule : public IFirebaseModuleInterface
{
};
IMPLEMENT_MODULE(FFirebaseModule, Firebase);
#if PLATFORM_ANDROID
#include "Android/AndroidJava.h"
#include "Android/AndroidJavaEnv.h"
#include "Android/AndroidJNI.h"
#include "Async/TaskGraphInterfaces.h"
extern "C"
{
JNIEXPORT void Java_com_epicgames_unreal_notifications_EpicFirebaseMessagingService_OnFirebaseTokenChange(JNIEnv* jenv, jobject thiz, jstring jPreviousToken, jstring jNewToken)
{
if (IFirebaseModuleInterface::Get().OnTokenUpdate.IsBound())
{
FString PreviousToken = FJavaHelper::FStringFromParam(jenv, jPreviousToken);
FString NewToken = FJavaHelper::FStringFromParam(jenv, jNewToken);
FFunctionGraphTask::CreateAndDispatchWhenReady([PreviousToken, NewToken]()
{
IFirebaseModuleInterface::Get().OnTokenUpdate.Broadcast(PreviousToken, NewToken);
}, TStatId(), NULL, ENamedThreads::GameThread);
}
}
}
#endif