Jump to content

FB4D – The OpenSource Cross-Platform Library for Firebase


Recommended Posts

Добрый день. Вопрос по работе с библиотекой: FB4D, на 20.04.2023 г.

https://github.com/SchneiderInfosystems/FB4D

Delphi 11.3, Java JDK (Java 19), FGX-Native 1.15.4.0 

1. Создал новый проект, добавил компонеты: TfgPushNotificationService, TfgFirebaseAnalytics, настроил, запустил приложение,

Token от Firebase принимается, Push приходит, Аналитика в консоль передается, Firebase работает!

2. Добавляю в проект один (любой) модуль, например FB4D.Interfaces.pas, никакого кода еще не пишу,

приложение собирается без ошибок, показывается заставка, и на ней приложение зависает.

04.thumb.png.1fb92bd7d40046d980f59c3c4fb461b7.png

3. Беру пример из билиотеки FB4D: "FSSimpleChat.dproj", компилирую под Windows, работает (новый пользователь в Authentication создается,

существующий пользователь логинится, если пароль забыл, на E-mail приходит письмо сменить пароль, в Firestore Database пишутся сообщения):

06.thumb.png.d5d246e1d9ee6083dbdba1c671d57385.png

05.thumb.png.e59e7b4948ba95204019b93dd4936f04.png

4. Тот же пример из билиотеки FB4D: "FSSimpleChat.dproj", компилирую FMX под Andriod 32-bit, ошибки при сборке.

Возможно FB4D не обновляется, Java JDK (Java 19) не воспринимается? Можно ли как-то работать с FB4D в версии FGX-Native 1.15.4.0 и последующих?

Пол года назад, осенью, еще на Delphi 10.4.2 с FGX-Native более ранней версии, этот пример FMX собирался и работал под Andriod 32-bit.

03.thumb.png.8a2654389f823586f494448999278a29.png

 

Edited by Александр Клопоцкий
Link to comment
Share on other sites

  • Administrators

Добрый вечер,

В 20.04.2023 в 20:33, Александр Клопоцкий сказал:

2. Добавляю в проект один (любой) модуль, например FB4D.Interfaces.pas, никакого кода еще не пишу,

приложение собирается без ошибок, показывается заставка, и на ней приложение зависает.

  1. Что в логах приложения?
  2. Что в стектрейсе, если запускать с отладкой.
В 20.04.2023 в 20:33, Александр Клопоцкий сказал:

4. Тот же пример из билиотеки FB4D: "FSSimpleChat.dproj", компилирую FMX под Andriod 32-bit, ошибки при сборке.

Вам нужно обновить список используемых Jar-библиотек в FMX. Для этого на ветке Libraries нужно в контекстном меню выбрать Reverts to default. После этого, указанные выше ошибки сборки, должны пройти.

Link to comment
Share on other sites

8 часов назад, Yaroslav Brovin сказал:

Вам нужно обновить список используемых Jar-библиотек в FMX. Для этого на ветке Libraries нужно в контекстном меню выбрать Reverts to default. После этого, указанные выше ошибки сборки, должны пройти.

Да, ошибки сборки пропали, загружается FMX под Andriod 32-bit.

Revertstodefault.thumb.png.6bd26f43441b8574ea5c1ff7460188c7.png

Link to comment
Share on other sites

8 часов назад, Yaroslav Brovin сказал:

Что в логах приложения?

Логи от запуска приложения до зависания на заставке:

"22.04.2023 8:13:06.576","I","ActivityThread",11028,11028,"smart_link is  not supported!!!"
"22.04.2023 8:13:06.579","W","libEGL",11028,11093,"EGLNativeWindowType 0xecc91528 disconnect failed"
"22.04.2023 8:13:06.605","I","gralloc4",11028,11093,"register: id=22000002760"
"22.04.2023 8:13:06.653","I","gralloc4",11028,11093,"unregister: id=22000002760"
"22.04.2023 8:13:06.654","W","libEGL",11028,11093,"EGLNativeWindowType 0xecc8b068 disconnect failed"
"22.04.2023 8:13:06.660","I","gralloc4",11028,11093,"register: id=22000002763"

Logs.thumb.png.05d585032deae4c0d08f512d1852dd47.png

Link to comment
Share on other sites

9 часов назад, Yaroslav Brovin сказал:

Что в стектрейсе, если запускать с отладкой.

First chance exception at $BE4E8F19. Exception class EJNIException with message 'java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/RemoteMessage;'. Process Faberlic.apk (23071)

Events.txt

Debug2.thumb.png.709f3a719a728be8683372ed9f7e2b69.png

Debug3.thumb.png.6f8b802b05c53ac4b4d2123931fb282b.png

 

Edited by Александр Клопоцкий
Link to comment
Share on other sites

  • Administrators
5 часов назад, Александр Клопоцкий сказал:

First chance exception at $BE4E8F19. Exception class EJNIException with message 'java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/RemoteMessage;'. Process Faberlic.apk (23071)

Нужно в настройках проекта поставил галку Push Notification. Указанный класс из Push-нотификации Firebase. Он подключается только при включении настройки в проекте.

image.png

Link to comment
Share on other sites

Hi

I hope I am answering the right question... google translate may have caused confusion.


I am using FB4D very successfully under FGX. with minor changes

Have you defined the TOKENJWT?

I also defined a FGX Conditional

In the FB4D.Helpers

I added to the implementation uses :

 {$ELSEIF Defined(FGX)}
  FGX.Types,
  FGX.Forms,

You need to add all FB4D units to your project.

Hope this helps.

This should allow you access to all the FB4D functions.. I don't use push so not sure about that.

  • Like 1
Link to comment
Share on other sites

5 часов назад, Alan сказал:

I also defined a FGX Conditional

In the FB4D.Helpers

I added to the implementation uses :

 {$ELSEIF Defined(FGX)}
  FGX.Types,
  FGX.Forms,

Thank you Alan, for your answer.

1. Created a new project, added components: TfgPushNotificationService, TfgFirebaseAnalytics, configured, launched the application,
Token from Firebase is accepted, Push arrives, Analytics are transmitted to the console, Firebase is working!

2. I am adding a module "FB4D.Helpers.pas" to this project, warning:
"FB4D.Helpers.pas" uses unit ".Types" from the "FMX" framework which is not compatible with the project.

3. I changed the file "FB4D.Helpers.pas" as you wrote.
And the compilation began to pass without errors! Thank you!

FB4D.Helpers.thumb.png.9faddfb8a33011c672ce423625d3b474.png

11.thumb.png.b2cdb684e1a10d10afd1913dbd9892f8.png

 

 

Edited by Александр Клопоцкий
  • Like 2
Link to comment
Share on other sites

35 минут назад, Александр Клопоцкий сказал:

How did you change this file: "FB4D.Helpers.pas"?

вероятно речь идет о коде https://github.com/SchneiderInfosystems/FB4D/blob/master/Source/FB4D.Helpers.pas#L244-L246

изменить {$ELSE} на

{$ELSEIF Defined(FGX)}
  FGX.Types,
  FGX.Forms,

  • Like 1
Link to comment
Share on other sites

57 минут назад, Dmitry Sh. сказал:

вероятно речь идет о коде https://github.com/SchneiderInfosystems/FB4D/blob/master/Source/FB4D.Helpers.pas#L244-L246

изменить {$ELSE} на

{$ELSEIF Defined(FGX)}
  FGX.Types,
  FGX.Forms,

Спасибо Dmitry Sh., изменил FB4D.Helpers.pas, компилируется!

11.thumb.png.9e840788d79a2cfc05c2d9b38f563e1f.png

 

Edited by Александр Клопоцкий
Link to comment
Share on other sites

В 25.04.2023 в 10:17, Alan сказал:

Have you defined the TOKENJWT?

After adding the "FB4D.OAuth.pas" module to the project, compilation errors appear:

FB4D.OAuth.pas(35,40): error E2003: E2003 Undeclared identifier: 'ITokenJWT'
FB4D.OAuth.pas(93,13): error E2003: E2003 Undeclared identifier: 'ETokenJWT'
FB4D.OAuth.pas(93,29): error E2382: E2382 Cannot call constructors using instance variables
C:\Faberlic\Faberlic.dpr(22,2): error F2063: F2063 Could not compile used unit 'FB4D.OAuth.pas'

How to define interfaces correctly?

FB4D.OAuth.thumb.png.2607153d4f9b58d8c9594701878d51fe.png

 

Edited by Александр Клопоцкий
Link to comment
Share on other sites

В 26.04.2023 в 00:24, Yaroslav Brovin сказал:

I opened Pull Request for adding FGX define to this project:
https://github.com/SchneiderInfosystems/FB4D/pull/158/files

So you can use this patch for local adopting code for FGX Native and don't forget add FGX define to project options.

Чистое приложение, добавлен только FB4D.Helpers.pas из Pull Request:

27.04.2023 8:05:20.779,"E","libc",27668,27714,"Access denied finding property ""persist.vendor.sf.fbc"""
27.04.2023 8:05:20.779,"E","libc",27668,27714,"Access denied finding property ""persist.vendor.gpu.fbc"""
27.04.2023 8:05:20.779,"E","libc",27668,27714,"Access denied finding property ""persist.vendor.vsp.fbc""
First chance exception at $BC357666. Exception class Segmentation fault (11). Process Project1.apk (27986)

17.thumb.png.12c2ca34f821465eded466f26f219881.png

 

 

Edited by Александр Клопоцкий
Link to comment
Share on other sites

В 26.04.2023 в 13:14, Yaroslav Brovin сказал:

Hello @Александр Клопоцкий,

You should also add to your project sources of the dependent library JOSE.

Все sources билиотеки JOSE добавлял в проект, не помогает, не компилируется.

 

Edited by Александр Клопоцкий
Link to comment
Share on other sites

  • Administrators
19 hours ago, Александр Клопоцкий said:

Если добавить в проект этот исправленный FB4D.Helpers.pas из Pull Request, то приложение виснит после заставки, как и с первоначальным из библиотеки.

Дефайн FGX добавлен в настройки проекта?

Link to comment
Share on other sites

15 часов назад, Yaroslav Brovin сказал:

Дефайн FGX добавлен в настройки проекта?

Да, FGX define - не был добавлен в настройках проекта.

24.thumb.png.db05f8c73d2886c3c84fbd61c0c7f684.png

 

После копиляции: сначала FGX.Logs не нашел, исправил на FGX.Log, потом ошибки:

Build started 27.04.2023 20:52:26.
__________________________________________________
Project "C:\Projects\Project1\Project1.dproj" (Make target(s)):
Target _PasCoreCompile:
    c:\delphi\bin\dccaarm.exe -$O- --no-config -M -Q -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults -DFGX;DEBUG;;FRAMEWORK_xfm -E.\Android\Debug -Ic:\delphi\lib\Android\debug;"C:\Users\User\AppData\Local\FGX Native\Libs\280\Android\Debug";c:\delphi\lib\Android\Release;C:\Users\Public\Documents\Embarcadero\Studio\22.0\Dcp\Android;"C:\Users\User\AppData\Local\FGX Native\Libs\280\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a";C:\Delphi\Add\UniDAC\Lib\Android32;C:\Delphi\Add\UniDAC\Demos\TechnologySpecific\SecureBridge;C:\Delphi\Add\JOSE\Source\Common;C:\Delphi\Add\JOSE\Source\JOSE;C:\Delphi\Add\FB4D\Source;C:\Delphi\Add\FB4D\GUIPatterns\FMX -LEC:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\Android -LNC:\Users\Public\Documents\Embarcadero\Studio\22.0\Dcp\Android -NU.\Android\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap; -Oc:\delphi\lib\Android\Release;C:\Users\Public\Documents\Embarcadero\Studio\22.0\Dcp\Android;"C:\Users\User\AppData\Local\FGX Native\Libs\280\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a";C:\Delphi\Add\UniDAC\Lib\Android32;C:\Delphi\Add\UniDAC\Demos\TechnologySpecific\SecureBridge;C:\Delphi\Add\JOSE\Source\Common;C:\Delphi\Add\JOSE\Source\JOSE;C:\Delphi\Add\FB4D\Source;C:\Delphi\Add\FB4D\GUIPatterns\FMX -Rc:\delphi\lib\Android\Release;C:\Users\Public\Documents\Embarcadero\Studio\22.0\Dcp\Android;"C:\Users\User\AppData\Local\FGX Native\Libs\280\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a";C:\Delphi\Add\UniDAC\Lib\Android32;C:\Delphi\Add\UniDAC\Demos\TechnologySpecific\SecureBridge;C:\Delphi\Add\JOSE\Source\Common;C:\Delphi\Add\JOSE\Source\JOSE;C:\Delphi\Add\FB4D\Source;C:\Delphi\Add\FB4D\GUIPatterns\FMX -Uc:\delphi\lib\Android\debug;"C:\Users\User\AppData\Local\FGX Native\Libs\280\Android\Debug";c:\delphi\lib\Android\Release;C:\Users\Public\Documents\Embarcadero\Studio\22.0\Dcp\Android;"C:\Users\User\AppData\Local\FGX Native\Libs\280\Android\Release";"C:\Users\User\AppData\Local\FGX Native\Libs\Common\Android\Debug\armeabi-v7a";C:\Delphi\Add\UniDAC\Lib\Android32;C:\Delphi\Add\UniDAC\Demos\TechnologySpecific\SecureBridge;C:\Delphi\Add\JOSE\Source\Common;C:\Delphi\Add\JOSE\Source\JOSE;C:\Delphi\Add\FB4D\Source;C:\Delphi\Add\FB4D\GUIPatterns\FMX --libpath:C:\Delphi\CatalogRepository\AndroidNDK-21-22.0.47991.2819\android-ndk-r21\platforms\android-23\arch-arm\usr\lib;C:\Delphi\CatalogRepository\AndroidNDK-21-22.0.47991.2819\android-ndk-r21\sources\cxx-stl\llvm-libc++\libs\armeabi-v7a --linker:C:\Delphi\CatalogRepository\AndroidNDK-21-22.0.47991.2819\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe -V -VN -NO.\Android\Debug  Project1.dpr   
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(678,15): error E2003: E2003 Undeclared identifier: 'SJPGImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(680,15): error E2003: E2003 Undeclared identifier: 'SGIFImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(682,15): error E2003: E2003 Undeclared identifier: 'SPNGImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(684,15): error E2003: E2003 Undeclared identifier: 'STIFFImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(717,14): error E2003: E2003 Undeclared identifier: 'TImageTypeChecker'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(717,32): error E2066: E2066 Missing operator or semicolon
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(718,16): error E2003: E2003 Undeclared identifier: 'SJPGImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(718,35): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(720,21): error E2003: E2003 Undeclared identifier: 'SGIFImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(720,40): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(722,21): error E2003: E2003 Undeclared identifier: 'SPNGImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(722,40): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(724,21): error E2003: E2003 Undeclared identifier: 'STIFFImageExtension'
    C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(724,41): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
    C:\Projects\Project1\Project1.dpr(8,2): error F2063: F2063 Could not compile used unit 'FB4D.Helpers.pas'
Done building target "_PasCoreCompile" in project "Project1.dproj" -- FAILED.
Done building project "Project1.dproj" -- FAILED.
Build FAILED.
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(718,35): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(720,40): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(722,40): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(724,41): warning W1058: W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(678,15): error E2003: E2003 Undeclared identifier: 'SJPGImageExtension'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(680,15): error E2003: E2003 Undeclared identifier: 'SGIFImageExtension'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(682,15): error E2003: E2003 Undeclared identifier: 'SPNGImageExtension'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(684,15): error E2003: E2003 Undeclared identifier: 'STIFFImageExtension'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(717,14): error E2003: E2003 Undeclared identifier: 'TImageTypeChecker'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(717,32): error E2066: E2066 Missing operator or semicolon
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(718,16): error E2003: E2003 Undeclared identifier: 'SJPGImageExtension'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(720,21): error E2003: E2003 Undeclared identifier: 'SGIFImageExtension'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(722,21): error E2003: E2003 Undeclared identifier: 'SPNGImageExtension'
C:\Delphi\Add\FB4D\Source\FB4D.Helpers.pas(724,21): error E2003: E2003 Undeclared identifier: 'STIFFImageExtension'
C:\Projects\Project1\Project1.dpr(8,2): error F2063: F2063 Could not compile used unit 'FB4D.Helpers.pas'
    4 Warning(s)
    11 Error(s)
Time Elapsed 00:00:00.29

21.thumb.png.85f8e2089e20cebbc8b7f435575c9327.png

20.thumb.png.4e192f7ab697758897423c4cf4bf8879.png

Добавил все "FB4D Source" и "JOSE Source" в проект, все равно те же ошибки.

23.thumb.png.0b4d8fec0b3ca139ade55402bad07d6e.png

 

 

Edited by Александр Клопоцкий
Link to comment
Share on other sites

4 часа назад, Alan сказал:

I see you don't  have TOKENJWT in your defines?

Yes, now added TOKENJWT in defines.

24.thumb.png.d456a1f8d624f3db7a07f2cda171f3ba.png

Yes, it compiles without errors, gets into the phone and works! Thank you!

27.thumb.png.ba5ea16a2b5fe6d1387ac1a38f7da3ac.png

 

Edited by Александр Клопоцкий
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...