FirebaseUI-Android icon indicating copy to clipboard operation
FirebaseUI-Android copied to clipboard

Account management page

Open alfongj opened this issue 7 years ago • 33 comments

It would be nice to have a built in component that allows users to manage their account. Specifically the functionality could be:

  • Change password (if you had one) Error conditions:
    • Invalid password (e.g. too short, empty)
    • Requires reauth (user signed-in more than 5 min ago, this could be solved if the old passwd is always required)
    • General internal error (network req, expired user, etc)
  • Add/Change email Error conditions:
    • Invalid email (e.g. exists already, invalid format)
    • Requires reauth (user sign-in more than 5 min ago -> should be handled by asking the user to reauthenticate with one of the providers they have linked)
    • General internal error
  • View linked accounts and unlink them. Error conditions:
    • General internal error
  • Style customization (same as authentication flows)

alfongj avatar Aug 03 '16 20:08 alfongj

I am working internally with a designer to obtain UX mocks for this.

alfongj avatar Aug 03 '16 20:08 alfongj

It would be great if you added account name change and user photo change, perhaps using glide and optional firebase storage support. BTW great work on the library!

krisu7 avatar Aug 16 '16 01:08 krisu7

On second thought, provide option to change photo through intent and startActivityForResult perhaps? This way developer can use some sort of image cropping library, upload photo themselves and return link for UI to show.

krisu7 avatar Aug 16 '16 01:08 krisu7

@krisu7 thanks for the input. If the profile page does include photo support, I think you're right that an Intent with result is the most flexible method.

samtstern avatar Aug 16 '16 15:08 samtstern

Hey, I wanted a profile management in my app and went ahead and implemented it. It looks sth like this : screenshot_20170113-175422

Let me know what are your thoughts?

the-dagger avatar Jan 13 '17 14:01 the-dagger

@the-dagger I'm curious, how are you making the circle image view?

SUPERCILEX avatar Jan 13 '17 15:01 SUPERCILEX

@the-dagger nice! That looks good. We are currently working on an account management page for FBUI, it will likely be our next big UI-based feature.

@SUPERCILEX I've had a lot of success using this library: https://github.com/hdodenhof/CircleImageView

samtstern avatar Jan 13 '17 15:01 samtstern

@the-dagger I see that you originally submitted #519. Thanks for bringing the discussion to issues before submitting a PR. Right now we're finishing the UX designs for our account management page so we wouldn't accept a PR for that feature.

samtstern avatar Jan 13 '17 15:01 samtstern

@samtstern cool, that's what I use in my app! So you'd be fine with including it in FirebaseUI?

SUPERCILEX avatar Jan 13 '17 15:01 SUPERCILEX

@SUPERCILEX yes in theory I'd be fine with that, it's an extremely lightweight dependency. If the account management page uses circular images we will likely use that library to implement.

samtstern avatar Jan 13 '17 15:01 samtstern

@samtstern Yep, that was the lib that I used.

the-dagger avatar Jan 13 '17 15:01 the-dagger

@samtstern Got it. it would be awesome if you guys create a separate branch for it once the dev work on it starts. Would be fun contributing to it 🙂

the-dagger avatar Jan 13 '17 15:01 the-dagger

@the-dagger I will definitely do that. We try to do all development and issue tracking in the open, but the UX designers are using some Google-internal tools to do the designs right now so we haven't shared yet.

samtstern avatar Jan 13 '17 15:01 samtstern

@samtstern thanks, good to know.

@samtstern awesome, can't wait for that PR to come along! How are you thinking of implementing it? I believe a dialog would look nicer, but we would have to force people to implement some interface to receive results. Or is there another way? I recall I removed an activity that looked like a dialog at some point... Or do your designers tell you want Android component to use? Sorry, that was a lot of questions... I'm just really curious about the design to developer process and how this all works as I don't have a designer. Thanks in advance!

SUPERCILEX avatar Jan 13 '17 18:01 SUPERCILEX

@SUPERCILEX I think those are all open questions. This is something that will live outside the sign in flow, the developer should be able to launch it from anywhere. So it will be different in that way from the rest of the library.

I think I will share the mocks with the community once finalized, that will help.

samtstern avatar Jan 13 '17 18:01 samtstern

@samtstern I believe adding a method to the builder that will give an option to the developers to open Profile management either as a dialog or as a new Activity will be a good idea.

the-dagger avatar Jan 13 '17 18:01 the-dagger

@samtstern SGTM!

@the-dagger I like that idea, but it adds extra complexity because we have to share logic between our activity and fragment. In addition, this will confuse the public api: "can you get a response from the dialog?", "should I be overriding onActivityResult or implementing an interface?", "are the two responses different or can I use them together?" The answers to these questions will be obvious to us, but consumers of the api might be confused even with good documentation. Anyway, we'll have to see; this is just food for thought.

SUPERCILEX avatar Jan 13 '17 19:01 SUPERCILEX

Hm, yeah that makes sense. I didn't take that into consideration.

the-dagger avatar Jan 13 '17 19:01 the-dagger

@SUPERCILEX @samtstern are there any plans or work being done on implementing this feature. I would really like to work on this, so was curious to know if there was any development going on.

the-dagger avatar Jul 19 '17 16:07 the-dagger

@the-dagger there was a lot of work done by @amandle before he left Google: https://github.com/firebase/FirebaseUI-Android/pull/654

We put this on pause to do the phone authentication work. This also means we would now need to incorporate phone auth into the account management flows.

We plan to pick this back up soon, we have a new person joining the team who is going to work on this.

samtstern avatar Jul 19 '17 16:07 samtstern

Oh, that's good to know! If you don't mind, can I look around that branch and send in some UI/UX related fixes in the meantime?

the-dagger avatar Jul 19 '17 16:07 the-dagger

@the-dagger yeah why don't you take a look around and then describe the changes you want to make in an issue before doing all the work? I want to run them by the folks who did the original design first (I wasn't too involved with that)

samtstern avatar Jul 19 '17 16:07 samtstern

Sure, will do. Thanks! 👍

the-dagger avatar Jul 19 '17 16:07 the-dagger

How is this going, @samtstern?

WillieCubed avatar Aug 14 '17 18:08 WillieCubed

Still totally on hold, we still don't have a replacement engineer for @amandle so I am mostly focused on just fixing major bugs as they come in rather than features.

samtstern avatar Aug 14 '17 18:08 samtstern

Hi @samtstern, any updates on this one? I'll be happy to take this up based on the work done by me earlier or the work done by @amandle in his fork.

the-dagger avatar Jul 27 '18 14:07 the-dagger

@the-dagger apologies for the slow response but this is not really going. @lsirac has some plans for this though, maybe?

For full disclosure I personally am not even in favor of this feature but I am certainly not going to use my one vote to stop anything cool from happening!

samtstern avatar Jul 31 '18 20:07 samtstern

Yep, this is one of the features we plan on implementing soon. Email link sign in may come first though.

lsirac avatar Jul 31 '18 22:07 lsirac

@samtstern @lsirac Thanks for the update. In case you go ahead and plan on implementing this feature, will be glad to help in the process!

the-dagger avatar Aug 01 '18 14:08 the-dagger

I was looking for a page like this. FirebaseUI should implement it... There are so many validations and conditions and it gets very laborious. Makes the development slower and harder.

ViniciusR avatar Aug 20 '18 20:08 ViniciusR