FIRUser.providerData array is empty when signed in anonymously, however the android sdk returns 1 array item when signed in anonymously with the following properties in the map/dictionary:

Sign in anonymously. See code below.
FIRApp *firApp = [FIRApp appNamed:@"foobar"];
[[FIRAuth authWithApp:firApp] signInAnonymouslyWithCompletion:^(FIRUser *user, NSError *error) {
// user.providerData array is empty
}];
Have found this issue whilst working on the react native firebase implementation, library specific code is as follows:
@Salakar I'm sorry that Firebase Auth's implementations for the list of providers are inconsistent between platforms. On both iOS and Web this implied "firebase" provider (which is represented as the user object itself) is omitted from the array, while on Android it is listed as an explicit provider in the array. At this moment I don't see how we can change any of the implementations without breaking existing developer code that may have already depended on them, so my suggestion is:
getProviderData() method.FIRUser instance itself to the beginning of the result array returned by providerData property getter.@XiangtianDai ok, makes sense, will work around it to match the ios & web implementations,
Another couple inconsistency queries if I may:
FIROptions vs FirebaseOptions:clientId.clientId on an initialised app, and, there's also no way to set the clientId via FirebaseOptions.Builder.FIRApp vs FirebaseApp:deleteApp.I have some other inconsistency issues between ios & android and am unsure where to address these? (sorry if this is the wrong place 馃檲 ) Right now though the ones above are my main concern - could you perhaps if possible advise on solutions/workarounds please?
@davidair for FirebaseCore
@XiangtianDai @davidair any updates on my previous comments?
@Salakar there's no workarounds for the two things you mentioned. It's likely that we can change Android to suit iOS behavior as a non-breaking change, since it just involves adding API stuff.
This is tracked internally at b/67354438, and isn't likely to be a priority for the time being.
@protocol86 - can you address whether or not the Android solution or iOS solution is the correct one here? If iOS is correct, we should close this bug and address it internally on the Android side since there's no actionable items for this repo.
The iOS library exhibits the expected functionality. A bug has been filed against the Android SDK, who will release it as soon as is feasible (though they are somewhat limited due to this being a breaking change).
Most helpful comment
@XiangtianDai ok, makes sense, will work around it to match the ios & web implementations,
Another couple inconsistency queries if I may:
FIROptionsvsFirebaseOptions:clientId.clientIdon an initialised app, and, there's also no way to set theclientIdviaFirebaseOptions.Builder.FIRAppvsFirebaseApp:deleteApp.I have some other inconsistency issues between ios & android and am unsure where to address these? (sorry if this is the wrong place 馃檲 ) Right now though the ones above are my main concern - could you perhaps if possible advise on solutions/workarounds please?