Даже после обширных исследований мне не удалось найти какую-либо реализацию Firebase PhoneAuth для Xamarin Android, и я уже попробовал ответы на другие вопросы, похожие на мои, но это всего лишь порт C # методов, но они на самом деле не работают,Я попытался, но в результате вызова VerifyPhoneNumber возникла исключительная ситуация NullPointerException.
LoginActivity.cs
...
void VerifyNumber(string mobile_no)
{
PhoneAuthCallbacks phoneAuthCallbacks = new PhoneAuthCallbacks();
PhoneAuthProvider.Instance.VerifyPhoneNumber(mobile_no, 60, Java.Util.Concurrent.TimeUnit.Seconds, this, phoneAuthCallbacks);
}
public class PhoneAuthCallbacks : PhoneAuthProvider.OnVerificationStateChangedCallbacks
{
public override void OnVerificationCompleted(PhoneAuthCredential credential)
{
FirebaseAuth.Instance.SignInWithCredential(credential);
System.Diagnostics.Debug.WriteLine("onVerificationCompleted");
}
public override void OnVerificationFailed(FirebaseException exception)
{
// This callback is invoked in an invalid request for verification is made,
// for instance if the the phone number format is not valid.
System.Diagnostics.Debug.WriteLine("onVerificationFailed: " + exception);
}
public override void OnCodeSent(string verificationId, PhoneAuthProvider.ForceResendingToken forceResendingToken)
{
// The SMS verification code has been sent to the provided phone number, we
// now need to ask the user to enter the code and then construct a credential
// by combining the code with a verification ID.
base.OnCodeSent(verificationId, forceResendingToken);
System.Diagnostics.Debug.WriteLine("onCodeSent" + verificationId);
}
}
Журнал отладки
10-05 16:35:45.265 D/Mono (19093): Loading reference 8 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Delivery_DemoApp.dll asmctx DEFAULT, looking for Xamarin.Firebase.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.265 D/Mono (19093): Assembly Ref addref Delivery_DemoApp[0xa7179160] -> Xamarin.Firebase.Common[0xa7177e40]: 2
10-05 16:35:45.265 D/Mono (19093): Loading reference 1 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Common.dll asmctx DEFAULT, looking for Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065
10-05 16:35:45.265 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Common[0xa7177e40] -> Mono.Android[0xa7178620]: 12
10-05 16:35:45.265 D/Mono (19093): Loading reference 9 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Delivery_DemoApp.dll asmctx DEFAULT, looking for Xamarin.Firebase.Auth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.265 D/Mono (19093): Assembly Ref addref Delivery_DemoApp[0xa7179160] -> Xamarin.Firebase.Auth[0xa7177d80]: 2
10-05 16:35:45.266 D/Mono (19093): Loading reference 1 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.dll asmctx DEFAULT, looking for Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065
10-05 16:35:45.266 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth[0xa7177d80] -> Mono.Android[0xa7178620]: 13
10-05 16:35:45.266 D/Mono (19093): Loading reference 2 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.dll asmctx DEFAULT, looking for Xamarin.Firebase.Auth.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.266 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth[0xa7177d80] -> Xamarin.Firebase.Auth.Interop[0xa7177de0]: 2
10-05 16:35:45.266 D/Mono (19093): Loading reference 2 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.Interop.dll asmctx DEFAULT, looking for Xamarin.Firebase.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.266 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth.Interop[0xa7177de0] -> Xamarin.Firebase.Common[0xa7177e40]: 3
10-05 16:35:45.266 D/Mono (19093): Loading reference 0 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Common.dll asmctx DEFAULT, looking for mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
10-05 16:35:45.266 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Common[0xa7177e40] -> mscorlib[0xa83b5220]: 15
10-05 16:35:45.266 D/Mono (19093): Loading reference 1 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.Interop.dll asmctx DEFAULT, looking for Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065
10-05 16:35:45.266 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth.Interop[0xa7177de0] -> Mono.Android[0xa7178620]: 14
10-05 16:35:45.266 D/Mono (19093): Loading reference 0 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.Interop.dll asmctx DEFAULT, looking for mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
10-05 16:35:45.266 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth.Interop[0xa7177de0] -> mscorlib[0xa83b5220]: 16
10-05 16:35:45.266 D/Mono (19093): Loading reference 3 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.dll asmctx DEFAULT, looking for Xamarin.Firebase.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.266 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth[0xa7177d80] -> Xamarin.Firebase.Common[0xa7177e40]: 4
10-05 16:35:45.266 D/Mono (19093): Loading reference 0 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.dll asmctx DEFAULT, looking for mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
10-05 16:35:45.267 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth[0xa7177d80] -> mscorlib[0xa83b5220]: 17
10-05 16:35:45.271 D/Mono (19093): Loading reference 4 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.dll asmctx DEFAULT, looking for Java.Interop, Version=0.1.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065
10-05 16:35:45.271 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth[0xa7177d80] -> Java.Interop[0xa7178680]: 6
10-05 16:35:45.271 D/Mono (19093): Loading reference 10 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Delivery_DemoApp.dll asmctx DEFAULT, looking for Xamarin.GooglePlayServices.Basement, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.272 D/Mono (19093): Assembly Ref addref Delivery_DemoApp[0xa7179160] -> Xamarin.GooglePlayServices.Basement[0xa7178140]: 2
10-05 16:35:45.272 D/Mono (19093): Loading reference 1 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.GooglePlayServices.Basement.dll asmctx DEFAULT, looking for Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065
10-05 16:35:45.272 D/Mono (19093): Assembly Ref addref Xamarin.GooglePlayServices.Basement[0xa7178140] -> Mono.Android[0xa7178620]: 15
10-05 16:35:45.272 D/Mono (19093): Loading reference 6 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.dll asmctx DEFAULT, looking for Xamarin.GooglePlayServices.Basement, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.272 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth[0xa7177d80] -> Xamarin.GooglePlayServices.Basement[0xa7178140]: 3
10-05 16:35:45.273 D/Mono (19093): Loading reference 0 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.GooglePlayServices.Basement.dll asmctx DEFAULT, looking for mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
10-05 16:35:45.273 D/Mono (19093): Assembly Ref addref Xamarin.GooglePlayServices.Basement[0xa7178140] -> mscorlib[0xa83b5220]: 18
10-05 16:35:45.330 D/Mono (19093): Loading reference 2 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Common.dll asmctx DEFAULT, looking for Java.Interop, Version=0.1.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065
10-05 16:35:45.330 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Common[0xa7177e40] -> Java.Interop[0xa7178680]: 7
10-05 16:35:45.383 D/FirebaseApp(19093): com.google.firebase.iid.FirebaseInstanceId is not linked. Skipping initialization.
10-05 16:35:45.384 D/FirebaseApp(19093): com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
10-05 16:35:45.385 D/FirebaseApp(19093): com.google.android.gms.measurement.AppMeasurement is not linked. Skipping initialization.
10-05 16:35:45.404 D/Mono (19093): Loading reference 5 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.dll asmctx DEFAULT, looking for Xamarin.GooglePlayServices.Tasks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.405 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth[0xa7177d80] -> Xamarin.GooglePlayServices.Tasks[0xa7178200]: 2
10-05 16:35:45.405 D/Mono (19093): Loading reference 1 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.GooglePlayServices.Tasks.dll asmctx DEFAULT, looking for Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065
10-05 16:35:45.405 D/Mono (19093): Assembly Ref addref Xamarin.GooglePlayServices.Tasks[0xa7178200] -> Mono.Android[0xa7178620]: 16
10-05 16:35:45.405 D/Mono (19093): Loading reference 4 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Auth.Interop.dll asmctx DEFAULT, looking for Xamarin.GooglePlayServices.Tasks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.405 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Auth.Interop[0xa7177de0] -> Xamarin.GooglePlayServices.Tasks[0xa7178200]: 3
10-05 16:35:45.405 D/Mono (19093): Loading reference 3 of /storage/emulated/0/Android/data/com.companyname.App1/files/.__override__/Xamarin.Firebase.Common.dll asmctx DEFAULT, looking for Xamarin.GooglePlayServices.Tasks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
10-05 16:35:45.405 D/Mono (19093): Assembly Ref addref Xamarin.Firebase.Common[0xa7177e40] -> Xamarin.GooglePlayServices.Tasks[0xa7178200]: 4
Unhandled Exception: Java.Lang.NullPointerException: <Timeout exceeded getting exception details>
Трассировка стека
>Java.Lang.NullPointerException: Attempt to invoke virtual method 'void com.google.firebase.auth.FirebaseAuth.zza(java.lang.String, long, java.util.concurrent.TimeUnit, com.google.firebase.auth.PhoneAuthProvider$OnVerificationStateChangedCallbacks, android.app.Activity, java.util.concurrent.Executor, boolean)' on a null object reference
at Java.Interop.JniEnvironment+InstanceMethods.CallVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <3beddfcb1eb547cd8ce47c3097f6eaeb>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0002a] in <3beddfcb1eb547cd8ce47c3097f6eaeb>:0
at Firebase.Auth.PhoneAuthProvider.VerifyPhoneNumber (System.String phoneNumber, System.Int64 timeout, Java.Util.Concurrent.TimeUnit unit, Android.App.Activity activity, Firebase.Auth.PhoneAuthProvider+OnVerificationStateChangedCallbacks callbacks) [0x000af] in <fd3fe568403d40c2b79ab43d84a24199>:0
at Delivery_DemoApp.Helpers.Firebase_Manager.SendCodeVerification (System.String mobile, Delivery_DemoApp.LoginActivity Instance) [0x00043] in C:\Users\bilka\source\repos\Delivery_DemoApp\Delivery_DemoApp\Helpers\Firebase_Manager.cs:76
--- End of managed Java.Lang.NullPointerException stack trace ---
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.firebase.auth.FirebaseAuth.zza(java.lang.String, long, java.util.concurrent.TimeUnit, com.google.firebase.auth.PhoneAuthProvider$OnVerificationStateChangedCallbacks, android.app.Activity, java.util.concurrent.Executor, boolean)' on a null object reference
at com.google.firebase.auth.PhoneAuthProvider.zza(Unknown Source:30)
at com.google.firebase.auth.PhoneAuthProvider.verifyPhoneNumber(Unknown Source:10)
at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method)
at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:30)
at android.view.View.performClick(View.java:6297)
at android.view.View$PerformClick.run(View.java:24797)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6626)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
Кто-нибудь смог это реализовать? Если да, пожалуйста, предоставьте помощь