Единственными двумя решениями, которые я видел для этой проблемы, являются:
Используйте FirebaseUser.getProviderData () . Он возвращает список UserInfo , каждый из которых содержит строку ID провайдера.
Например:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
List<? extends UserInfo> infos = user.getProviderData();
for (UserInfo ui : infos) {
if (ui.getProviderId().equals(GoogleAuthProvider.PROVIDER_ID)) {
return true;
}
}
getProviders()
является общедоступным методом в SDK до 12.0.0, я не помню, чтобы его когда-либо видели в документации, а поиск в Интернете не нашел многого. Возможно, он не был частью API и был удален с 12.0.0 без фазы устаревания. – Bob Snyder 26 March 2018 в 16:11getProviderId()
всегда возвращает "firebase" для google, facebook и т. д., которые я пробовал. Таким образом, использованиеgetProviderData().get(0).getProviderId()
похоже на рабочий путь. – Ugurcan Yildirim 10 April 2018 в 21:49