So I've literally tried anything and everything I could think of to fix this.
I have my anon user that I'm trying to link/upgrade with an existing account, now this works if I try to link/upgrade it to an account that say, has an email & a phone number attached.
But the problem is, let's say I have said account above AND a Facebook account with the same email, those will not merge, it just returns the error. Now I'm not sure if this is intended behavior and if it is there's probably a better way to handle it than pass it as a "DEVELOPER_ERROR".
Accounts laid out:
"Facebook Provider": "[email protected]"
"Google & Phone Provider (Linked)": "[email protected] & +12345678900"
Works ONLY using Phone: Anon upgrade to -> "Google & Phone Provider (Linked)"
Doesn't work: Anon upgrade to -> "Facebook Provider"
@austinhodak thanks for the report! I am a little bit confused by the situation. Could you lay out the reproduction steps in order so that I can get this bug to happen? Pretend I am very stupid and state the obvious parts too :-)
@samtstern Ya sorry! It's kinda hard to explain but I'll try my best!
First time users are logged in Anonymously. Then I have the login builder with the enable auto upgrade.
Anonymous User trying to login:
-- Upgrading to NEW account (Works)
-- Upgrading to existing account (Google/Phone) works ONLY when using the Phone number.
-- Upgrading to existing account (Facebook w/ same email as above Google) doesn't work.
See photo below for the accounts, the only way I can upgrade an anon user to any of the 2 is by using the phone number.

@austinhodak thanks! So I assume from that screenshot that you have the "multiple accounts per email" setting enabled on your project?
@samtstern Yep it is enabled.
@samtstern I assume the temporary solution would be to just disable the "multiple accounts per email" setting?
Sorry I dropped the ball on this issue! I've been traveling for work and
haven't had much quality time to sit down and code.
Yeah I suspect that would help, since that's the setting I use for all of
my testing. Of course that would be a big change for your app, so I
understand why you might not want to try that.
On Thu, Oct 25, 2018, 1:09 AM Austin Hodak notifications@github.com wrote:
@samtstern https://github.com/samtstern I assume the temporary solution
would be to just disable the "multiple accounts per email" setting?—
You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub
https://github.com/firebase/FirebaseUI-Android/issues/1489#issuecomment-432869104,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIEw6rb-i9PbQ7jGomiU9zOhgNfwva4zks5uoQEfgaJpZM4XsW3v
.
@samtstern It's ok! I just went ahead and disabled it for now, shouldn't affect my sign in flow, and having the ability to actually upgrade anon users was more important to me than allowing multiple emails.
*accidentally closed this, my bad, reopening.
@austinhodak great, glad it's not blocking your development. Adding to the 4.3.0 milestone for investigation.
This is complex and I don't want to put 4.3.0 at risk so punting it to 4.3.1
We're seeing the same issue.
It looks like a customer originally signed up via Facebook, then logged in via email/password, and now is trying to log in with Facebook again, but receives: "No supported providers." via FirebaseUI Android.
Looking in the authentication list, the only provider icon listed is the email/password icon.
It's as if the Facebook provider was removed from the user account.
@ahaverty thanks for that extra info, it simplifies things a bit in my mind.
@lsirac is it the intended behavior for password to "override" Facebook? If not can you take a look at this?
@ahaverty I'm guessing you have multiple accounts per email enabled, right? Otherwise there's no way for you to sign in with Facebook, and then log in via email and password.
Unfortunately, the linking and anonymous upgrade flows depend on using the fetchSignInMethodsForEmail API. When multiple accounts per email is enabled, this API doesn't work in the same way, breaking our flows.
@lsirac Yes we have multiple accounts, anonymous exploration and anonymous merging. Some of our users sign in via our end-user application and later sign up to our business product which allows them to do more like managing other user's spend.
We only allow passwordless email signup for this.
This sounds like fetchSignInMethodsForEmail isn't working as designed?
Sorry for my lack of response here, I talked with @lsirac and a few others about this and basically there is no way we can get FirebaseUI linking to work completely correct for the "multiple accounts per email" case without making backend changes to fetchSignInMethodsForEmail. We agree that it doesn't work how we want, but also changing it would be non-trivial and would be possibly breaking change in behavior for anyone relying on the current behavior.
For the forseeable future there won't be anything we can do within FirebaseUI to make this better, so I am going to close this issue. I'll make sure to document this whole discussion in an internal bug report so that if we ever do change how it works on the backend we can re-open this and get it right.
Most helpful comment
We're seeing the same issue.
It looks like a customer originally signed up via Facebook, then logged in via email/password, and now is trying to log in with Facebook again, but receives: "No supported providers." via FirebaseUI Android.
Looking in the authentication list, the only provider icon listed is the email/password icon.
It's as if the Facebook provider was removed from the user account.