Firebase AuthUI - 从 Facebook 提供商获取额外的用户信息
Firebase AuthUI - Fetch additional User Information from Facebook Provider
我正在尝试从 Firebase AuthUI 的 Facebook 提供商获取请求的信息。
我没有找到任何获取此数据的方法。当我调试该步骤时,我可以在属性 "zzdd" 中看到请求的信息,就像 JSON 一样。
我怎样才能得到这些数据?
Request birthday and gender information from user:
new AuthUI.IdpConfig.FacebookBuilder()
.setPermissions( Arrays.asList( "user_birthday", "user_gender" ) )
.build() );
Fetch data from provider
mUser = FirebaseAuth.getInstance().getCurrentUser();
for( UserInfo user : mUser.getProviderData() ) { }
Debbuger - user - zzdd attribute
{"birthday":"08/05/1995","updated_time":"2018-05-04T21:28:53+0000","gender":"male",...}
Firebase AuthUI 版本:3.3.1
我找到了解决方案。
要通过 Firebase Auth 获取更多信息,您必须通过 SDK 提供商获取,例如 Facebook,代码如下:
Get data from Facebook SDK on Login Success with Firebase AuthUI:
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted( JSONObject jsonObject, GraphResponse response ) {
// Application code
try {
String birthday = jsonObject.getString( "birthday" );
String gender = jsonObject.getString( "gender" );
} catch( JSONException e ) {
e.printStackTrace();
}
}
} );
Bundle parameters = new Bundle();
parameters.putString( "fields", "birthday,gender" );
request.setParameters( parameters );
request.executeAsync();
我正在尝试从 Firebase AuthUI 的 Facebook 提供商获取请求的信息。
我没有找到任何获取此数据的方法。当我调试该步骤时,我可以在属性 "zzdd" 中看到请求的信息,就像 JSON 一样。
我怎样才能得到这些数据?
Request birthday and gender information from user:
new AuthUI.IdpConfig.FacebookBuilder() .setPermissions( Arrays.asList( "user_birthday", "user_gender" ) ) .build() );
Fetch data from provider
mUser = FirebaseAuth.getInstance().getCurrentUser(); for( UserInfo user : mUser.getProviderData() ) { }
Debbuger - user - zzdd attribute
{"birthday":"08/05/1995","updated_time":"2018-05-04T21:28:53+0000","gender":"male",...}
Firebase AuthUI 版本:3.3.1
我找到了解决方案。
要通过 Firebase Auth 获取更多信息,您必须通过 SDK 提供商获取,例如 Facebook,代码如下:
Get data from Facebook SDK on Login Success with Firebase AuthUI:
GraphRequest request = GraphRequest.newMeRequest( AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted( JSONObject jsonObject, GraphResponse response ) { // Application code try { String birthday = jsonObject.getString( "birthday" ); String gender = jsonObject.getString( "gender" ); } catch( JSONException e ) { e.printStackTrace(); } } } ); Bundle parameters = new Bundle(); parameters.putString( "fields", "birthday,gender" ); request.setParameters( parameters ); request.executeAsync();