Flutterfire: [firebase_auth: phone auth] In flutter for web app firebase phone auth implementation has an UnimplementedError for firebase_auth_web.FirebaseAuthWeb.new.verifyPhoneNumber method

Created on 4 Mar 2020  Β·  18Comments  Β·  Source: FirebaseExtended/flutterfire

Describe the bug
In flutter for web app firebase phone auth implementation has an UnimplementedError for firebase_auth_web.FirebaseAuthWeb.new.verifyPhoneNumber method. The same code runs fine when testing on android or iOS device. Flutter doctor does not report any issue.

firebase plugin used is firebase_auth: ^0.15.2

errors.dart:147 Uncaught (in promise) Error: UnimplementedError: verifyPhoneNumber at 
Object.throw_ [as throw] (errors.dart:196) at verifyPhoneNumber (firebase_auth_web.dart:358) at verifyPhoneNumber.next (<anonymous>) at runBody (async_patch.dart:86) at Object._async [as async] (async_patch.dart:125) at firebase_auth_web.FirebaseAuthWeb.new.verifyPhoneNumber (firebase_auth_web.dart:347) at firebase_auth.FirebaseAuth.__.verifyPhoneNumber (firebase_auth.dart:266) at main._MyAppPageState.new.verifyPhone (VM170 main.ddc.js:1161) at verifyPhone.next (<anonymous>) at runBody (async_patch.dart:86) at Object._async [as async] (async_patch.dart:125) at main._MyAppPageState.new.verifyPhone (VM170 main.ddc.js:1154) at ink_well.InkWell.new.<anonymous> (VM170 main.ddc.js:1227) at _InkResponseState.new.[_handleTap] (ink_well.dart:705) at ink_well.dart:788 at tap.TapGestureRecognizer.new.invokeCallback (recognizer.dart:182) at tap.TapGestureRecognizer.new.handleTapUp (tap.dart:486) at tap.TapGestureRecognizer.new.[_checkUp] (tap.dart:264) at tap.TapGestureRecognizer.new.handlePrimaryPointer (tap.dart:199) at tap.TapGestureRecognizer.new.handleEvent (recognizer.dart:470) at pointer_router.PointerRouter.new.[_dispatch] (pointer_router.dart:76) at pointer_router.dart:117 at LinkedMap.new.forEach (linked_hash_map.dart:23) at pointer_router.PointerRouter.new.[_dispatchEventToRoutes] (pointer_router.dart:115) at pointer_router.PointerRouter.new.route (pointer_router.dart:101) at binding$5.WidgetsFlutterBinding.new.handleEvent (binding.dart:218) at binding$5.WidgetsFlutterBinding.new.dispatchEvent (binding.dart:198) at binding$5.WidgetsFlutterBinding.new.[_handlePointerEvent] (binding.dart:156) at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue] (binding.dart:102) at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket] (binding.dart:86) at _engine.PointerBinding.__.[_onPointerData] (pointer_binding.dart:129) at pointer_binding.dart:465 at pointer_binding.dart:430 at HTMLElement.<anonymous> (pointer_binding.dart:195) DartError @ errors.dart:147 throw_ @ errors.dart:196 verifyPhoneNumber @ firebase_auth_web.dart:358 runBody @ async_patch.dart:86 _async @ async_patch.dart:125 verifyPhoneNumber @ firebase_auth_web.dart:347 verifyPhoneNumber @ firebase_auth.dart:266 verifyPhone @ main.dart:47 runBody @ async_patch.dart:86 _async @ async_patch.dart:125 verifyPhone @ main.dart:39 (anonymous) @ main.dart:181 [_handleTap] @ ink_well.dart:705 (anonymous) @ ink_well.dart:788 invokeCallback @ recognizer.dart:182 handleTapUp @ tap.dart:486 [_checkUp] @ tap.dart:264 handlePrimaryPointer @ tap.dart:199 handleEvent @ recognizer.dart:470 [_dispatch] @ pointer_router.dart:76 (anonymous) @ pointer_router.dart:117 forEach @ linked_hash_map.dart:23 [_dispatchEventToRoutes] @ pointer_router.dart:115 route @ pointer_router.dart:101 handleEvent @ binding.dart:218 dispatchEvent @ binding.dart:198 [_handlePointerEvent] @ binding.dart:156 [_flushPointerEventQueue] @ binding.dart:102 [_handlePointerDataPacket] @ binding.dart:86 [_onPointerData] @ pointer_binding.dart:129 (anonymous) @ pointer_binding.dart:465 (anonymous) @ pointer_binding.dart:430 (anonymous) @ pointer_binding.dart:195 Promise.then (async) _scheduleImmediateWithPromise @ async_patch.dart:166 _scheduleImmediate @ async_patch.dart:138 _scheduleAsyncCallback @ schedule_microtask.dart:73 _rootScheduleMicrotask @ zone.dart:1187 scheduleMicrotask @ zone.dart:1401 [_asyncComplete] @ future_impl.dart:555 complete @ future_impl.dart:42 [_complete] @ ticker.dart:380 ticker$.TickerFuture.complete @ ticker.dart:370 [_animateToInternal] @ animation_controller.dart:589 reverse @ animation_controller.dart:494 deactivate @ ink_highlight.dart:93 updateHighlight @ ink_well.dart:586 [_handleTap] @ ink_well.dart:701 (anonymous) @ ink_well.dart:788 invokeCallback @ recognizer.dart:182 handleTapUp @ tap.dart:486 [_checkUp] @ tap.dart:264 handlePrimaryPointer @ tap.dart:199 handleEvent @ recognizer.dart:470 [_dispatch] @ pointer_router.dart:76 (anonymous) @ pointer_router.dart:117 forEach @ linked_hash_map.dart:23 [_dispatchEventToRoutes] @ pointer_router.dart:115 route @ pointer_router.dart:101 handleEvent @ binding.dart:218 dispatchEvent @ binding.dart:198 [_handlePointerEvent] @ binding.dart:156 [_flushPointerEventQueue] @ binding.dart:102 [_handlePointerDataPacket] @ binding.dart:86 [_onPointerData] @ pointer_binding.dart:129 (anonymous) @ pointer_binding.dart:465 (anonymous) @ pointer_binding.dart:430 (anonymous) @ pointer_binding.dart:195 Show 37 more frames
web auth bug

Most helpful comment

same issue any fix?

All 18 comments

Hi @ian-pinto-ketto
can you please provide your flutter doctor -v ,
your flutter run -d chrome --verbose
and your pubspec.yaml
or if possible a reproducible minimal code sample.
Thank you

hello, I face this error also,
my flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, v1.15.22-pre.24, on Microsoft Windows [Version 10.0.18362.719], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Chrome - develop for the web
[√] Android Studio (version 3.5)
[√] Connected device (3 available)

β€’ No issues found!

my pubspec

version: 1.0.0+1

environment:
sdk: ">=2.1.0 <3.0.0"

dependencies:
flutter:
sdk: flutter

firebase_core: ^0.4.4+2
firebase_auth: ^0.15.5+2
cloud_firestore: ^0.13.4
firebase_storage: ^3.0.8

# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
font_awesome_flutter: ^8.5.0
smooth_star_rating: ^1.0.3
intl: ^0.16.0
share: ^0.6.3+4
shared_preferences: ^0.5.6
timeago: ^2.0.24
carousel_slider: ^1.4.1
http: ^0.12.0+4
image_picker: ^0.6.3+1
fluttertoast: ^3.1.3

dev_dependencies:
flutter_launcher_icons: "^0.7.0"
flutter_test:
sdk: flutter

HI @yuyenkan
can you please provide your flutter run -d chrome --verbose
as well
Thank you

the log from console

Uncaught (in promise) Error: UnimplementedError: verifyPhoneNumber
at Object.throw_ [as throw] (errors.dart:196)
at verifyPhoneNumber (firebase_auth_web.dart:358)
at verifyPhoneNumber.next ()
at runBody (async_patch.dart:86)
at Object._async [as async] (async_patch.dart:125)
at firebase_auth_web.FirebaseAuthWeb.new.verifyPhoneNumber (firebase_auth_web.dart:347)
at firebase_auth.FirebaseAuth.__.verifyPhoneNumber (firebase_auth.dart:266)
at Function.initOTP (auth_service.dart:15)
at otp_screen._OTPScreenState.new.initState (otp_screen.dart:38)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4640)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at framework.StatelessElement.new.inflateWidget (framework.dart:3446)
at framework.StatelessElement.new.updateChild (framework.dart:3214)
at framework.StatelessElement.new.performRebuild (framework.dart:4527)
at framework.StatelessElement.new.rebuild (framework.dart:4218)
at framework.StatelessElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatelessElement.new.mount (framework.dart:4476)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.MultiChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.MultiChildRenderObjectElement.new.mount (framework.dart:5947)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.StatelessElement.new.inflateWidget (framework.dart:3446)
at framework.StatelessElement.new.updateChild (framework.dart:3214)
at framework.StatelessElement.new.performRebuild (framework.dart:4527)
at framework.StatelessElement.new.rebuild (framework.dart:4218)
at framework.StatelessElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatelessElement.new.mount (framework.dart:4476)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at _InheritedNotifierElement.new.inflateWidget (framework.dart:3446)
at _InheritedNotifierElement.new.updateChild (framework.dart:3214)
at _InheritedNotifierElement.new.performRebuild (framework.dart:4527)
at _InheritedNotifierElement.new.rebuild (framework.dart:4218)
at _InheritedNotifierElement.new.[_firstBuild] (framework.dart:4481)
at _InheritedNotifierElement.new.mount (framework.dart:4476)
at framework.SingleChildRenderObjectElement.new.inflateWidget (framework.dart:3446)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3214)
at framework.SingleChildRenderObjectElement.new.mount (framework.dart:5830)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.StatelessElement.new.inflateWidget (framework.dart:3446)
at framework.StatelessElement.new.updateChild (framework.dart:3214)
at framework.StatelessElement.new.performRebuild (framework.dart:4527)
at framework.StatelessElement.new.rebuild (framework.dart:4218)
at framework.StatelessElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatelessElement.new.mount (framework.dart:4476)
at basic._OffstageElement.new.inflateWidget (framework.dart:3446)
at basic._OffstageElement.new.updateChild (framework.dart:3214)
at basic._OffstageElement.new.mount (framework.dart:5830)
at framework.InheritedElement.new.inflateWidget (framework.dart:3446)
at framework.InheritedElement.new.updateChild (framework.dart:3214)
at framework.InheritedElement.new.performRebuild (framework.dart:4527)
at framework.InheritedElement.new.rebuild (framework.dart:4218)
at framework.InheritedElement.new.[_firstBuild] (framework.dart:4481)
at framework.InheritedElement.new.mount (framework.dart:4476)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at framework.InheritedElement.new.inflateWidget (framework.dart:3446)
at framework.InheritedElement.new.updateChild (framework.dart:3214)
at framework.InheritedElement.new.performRebuild (framework.dart:4527)
at framework.InheritedElement.new.rebuild (framework.dart:4218)
at framework.InheritedElement.new.[_firstBuild] (framework.dart:4481)
at framework.InheritedElement.new.mount (framework.dart:4476)
at framework.StatelessElement.new.inflateWidget (framework.dart:3446)
at framework.StatelessElement.new.updateChild (framework.dart:3214)
at framework.StatelessElement.new.performRebuild (framework.dart:4527)
at framework.StatelessElement.new.rebuild (framework.dart:4218)
at framework.StatelessElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatelessElement.new.mount (framework.dart:4476)
at framework.StatefulElement.new.inflateWidget (framework.dart:3446)
at framework.StatefulElement.new.updateChild (framework.dart:3214)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4481)
at framework.StatefulElement.new.[_firstBuild] (framework.dart:4666)
at framework.StatefulElement.new.mount (framework.dart:4476)
at overlay$._TheatreElement.new.inflateWidget (framework.dart:3446)
at overlay$._TheatreElement.new.updateChild (framework.dart:3214)
at overlay$._TheatreElement.new.updateChildren (framework.dart:5580)
at overlay$._TheatreElement.new.update (framework.dart:5957)
at framework.StatefulElement.new.updateChild (framework.dart:3201)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.update (framework.dart:4707)
at _InheritedNotifierElement.new.updateChild (framework.dart:3201)
at _InheritedNotifierElement.new.performRebuild (framework.dart:4527)
at _InheritedNotifierElement.new.rebuild (framework.dart:4218)
at _InheritedNotifierElement.new.update (framework.dart:4862)
at _InheritedNotifierElement.new.update (inherited_notifier.dart:181)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3201)
at framework.SingleChildRenderObjectElement.new.update (framework.dart:5837)
at framework.StatefulElement.new.updateChild (framework.dart:3201)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.StatefulElement.new.update (framework.dart:4707)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3201)
at framework.SingleChildRenderObjectElement.new.update (framework.dart:5837)
at framework.SingleChildRenderObjectElement.new.updateChild (framework.dart:3201)
at framework.SingleChildRenderObjectElement.new.update (framework.dart:5837)
at framework.StatelessElement.new.updateChild (framework.dart:3201)
at framework.StatelessElement.new.performRebuild (framework.dart:4527)
at framework.StatelessElement.new.rebuild (framework.dart:4218)
at framework.StatelessElement.new.update (framework.dart:4583)
at framework.StatefulElement.new.updateChild (framework.dart:3201)
at framework.StatefulElement.new.performRebuild (framework.dart:4527)
at framework.StatefulElement.new.performRebuild (framework.dart:4675)
at framework.StatefulElement.new.rebuild (framework.dart:4218)
at framework.BuildOwner.new.buildScope (framework.dart:2627)
at binding$5.WidgetsFlutterBinding.new.drawFrame (binding.dart:883)
at binding$5.WidgetsFlutterBinding.new.[_handlePersistentFrameCallback] (binding.dart:283)
at binding$5.WidgetsFlutterBinding.new.[_invokeFrameCallback] (binding.dart:1108)
at binding$5.WidgetsFlutterBinding.new.handleDrawFrame (binding.dart:1047)
at binding$5.WidgetsFlutterBinding.new.[_handleDrawFrame] (binding.dart:963)
at engine.dart:191

I've got the same issue

I believe this ain't implemented yet.

From https://github.com/FirebaseExtended/flutterfire/blob/master/packages/firebase_auth/firebase_auth_web/lib/firebase_auth_web.dart

@override
  Future<void> verifyPhoneNumber(String app,
      {String phoneNumber,
      Duration timeout,
      int forceResendingToken,
      PhoneVerificationCompleted verificationCompleted,
      PhoneVerificationFailed verificationFailed,
      PhoneCodeSent codeSent,
      PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout}) async {
    // TODO(hterkelsen): Figure out how to do this on Web. We need to display
    // a DOM element to contain the reCaptcha.
    // See https://github.com/flutter/flutter/issues/46021
    throw UnimplementedError('verifyPhoneNumber');
  }

I am also facing the same issue, is there any workaround for now?

@arpitmantri7501 I ended up doing a pure JS implementation based on https://firebase.google.com/docs/auth/web/phone-auth, and then calling all of the JS functions using universal_html. Hope this helps!

same issue any fix?

same error .. only way to solve this is by using firebase package instead of firebase_auth, then implementing RecaptchaVerifier... but then it wont use FirebaseAuth object, it will require Firebase object.. which defeats the purpose of using Firebase_auth for web.
Any work around?

This is correct, verifyPhoneNumber is an Android & iOS/MacOS only API, for web please see signInWithPhoneNumber. Thanks

I can't find signInWithPhoneNumber in master. Is it in some branch?

@burtonmiller - he is talking about using https://pub.dev/packages/firebase instead for the web phone auth. I dont think it is a good option. I removed phone auth from the web because of this.

Thanks for clarifying.

So -- the only option for Flutter Web phone auth for the
foreseeable future is using the web-only (
https://pub.dev/packages/firebase) implementation? Because this creates
complications if your code runs on mobile and web...

On Mon, Jun 29, 2020 at 10:00 AM Dheeraj Sarwaiya notifications@github.com
wrote:

@burtonmiller https://github.com/burtonmiller - he is talking about
using https://pub.dev/packages/firebase instead for the web phone auth. I
dont think it is a good option. I removed phone auth from the web because
of this.

β€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/FirebaseExtended/flutterfire/issues/2117#issuecomment-651244279,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAARWRJO4ADZ755EJUPEC6DRZDCEXANCNFSM4LA54OBQ
.

--
Burton Miller | 206.409.9860

I can't find signInWithPhoneNumber, Can you please tell in detail how to implement phone auth in flutter web?

https://pub.dev/packages/firebase is a separate plugin, not
firebase_auth. The names are confusing.

On Fri, Jul 3, 2020 at 11:58 AM Sandeep Gurram notifications@github.com
wrote:

I can't find signInWithPhoneNumber , Can you please tell in detail how to
implement phone auth in flutter web?

β€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/FirebaseExtended/flutterfire/issues/2117#issuecomment-653651463,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAARWRPET2UQEY3BV55K7CLRZYS55ANCNFSM4LA54OBQ
.

--
Burton Miller | 206.409.9860

Looks that this thread solves: https://github.com/flutter/flutter/issues/46021

@Salakar verifyPhoneNumber is not an Android & iOS/MacOS only API, please check the example from main branch. It doesn't work yet. The method 'verifyPhoneNumber' is not implemented yet, the problem is not solved. Please open the issue back.
image
If I am wrong, сan you fix an example or explain how to use a web API correctly for phone number auth without verifyPhoneNumber?

@hterkelsen @yjbanov please merge any solution, i know several developers and customers who really need it too. We have been waiting for a good solution for half a year.
I have a solution for web with login.html + js code, but it is a very ugly and uncomfortable code.
Why was the firebase_auth module checked as "web support" if the most interesting auth method is not implemented yet? This is confusing to developers.

Was this page helpful?
0 / 5 - 0 ratings