Skip to content

Commit 71d244c

Browse files
committed
fix android
1 parent 7b901d1 commit 71d244c

File tree

6 files changed

+31
-11
lines changed

6 files changed

+31
-11
lines changed

packages/firebase_auth/firebase_auth/android/src/main/java/io/flutter/plugins/firebase/auth/AuthStateChannelStreamHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void onListen(Object arguments, EventSink events) {
4343
if (user == null) {
4444
event.put(Constants.USER, null);
4545
} else {
46-
event.put(Constants.USER, PigeonParser.parseFirebaseUser(user).toList());
46+
event.put(Constants.USER, PigeonParser.manuallyToList(PigeonParser.parseFirebaseUser(user)));
4747
}
4848

4949
events.success(event);

packages/firebase_auth/firebase_auth/android/src/main/java/io/flutter/plugins/firebase/auth/FlutterFirebaseAuthPlugin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
import io.flutter.plugin.common.MethodChannel;
3434
import io.flutter.plugins.firebase.core.FlutterFirebaseCorePlugin;
3535
import io.flutter.plugins.firebase.core.FlutterFirebasePlugin;
36+
37+
import java.util.ArrayList;
3638
import java.util.HashMap;
3739
import java.util.List;
3840
import java.util.Map;
@@ -697,8 +699,7 @@ public Task<Map<String, Object>> getPluginConstantsForFirebaseApp(FirebaseApp fi
697699
}
698700

699701
if (user != null) {
700-
final Object parsedUser = user.toList();
701-
constants.put("APP_CURRENT_USER", parsedUser);
702+
constants.put("APP_CURRENT_USER", PigeonParser.manuallyToList(user));
702703
}
703704

704705
taskCompletionSource.setResult(constants);

packages/firebase_auth/firebase_auth/android/src/main/java/io/flutter/plugins/firebase/auth/IdTokenChannelStreamHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void onListen(Object arguments, EventSink events) {
4343
if (user == null) {
4444
event.put(Constants.USER, null);
4545
} else {
46-
event.put(Constants.USER, PigeonParser.parseFirebaseUser(user).toList());
46+
event.put(Constants.USER, PigeonParser.manuallyToList(PigeonParser.parseFirebaseUser(user)));
4747
}
4848

4949
events.success(event);

packages/firebase_auth/firebase_auth/android/src/main/java/io/flutter/plugins/firebase/auth/PigeonParser.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@
3838
import java.util.Objects;
3939

4040
public class PigeonParser {
41+
static List<Object> manuallyToList(GeneratedAndroidFirebaseAuth.PigeonUserDetails pigeonUserDetails) {
42+
List<Object> output = new ArrayList<>();
43+
output.add(pigeonUserDetails.getUserInfo().toList());
44+
output.add(pigeonUserDetails.getProviderData());
45+
return output;
46+
}
47+
4148
static GeneratedAndroidFirebaseAuth.PigeonUserCredential parseAuthResult(
4249
@NonNull AuthResult authResult) {
4350
GeneratedAndroidFirebaseAuth.PigeonUserCredential.Builder builder =

packages/firebase_auth/firebase_auth_platform_interface/lib/src/method_channel/method_channel_firebase_auth.dart

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,18 @@ class MethodChannelFirebaseAuth extends FirebaseAuthPlatform {
136136
_multiFactorInstances[appName] = multiFactorInstance;
137137
}
138138

139-
final userMap = arguments['user'];
140-
if (userMap == null) {
139+
final userList = arguments['user'];
140+
if (userList == null) {
141141
instance.currentUser = null;
142142
streamController.add(const _ValueWrapper.absent());
143143
} else {
144144
final MethodChannelUser user = MethodChannelUser(
145-
instance, multiFactorInstance, PigeonUserDetails.decode(userMap));
145+
instance,
146+
multiFactorInstance,
147+
PigeonUserDetails.decode(
148+
[PigeonUserInfo.decode(userList[0]!), userList[1]],
149+
),
150+
);
146151

147152
instance.currentUser = user;
148153
streamController.add(_ValueWrapper(instance.currentUser));
@@ -170,14 +175,19 @@ class MethodChannelFirebaseAuth extends FirebaseAuthPlatform {
170175
_multiFactorInstances[appName] = multiFactorInstance;
171176
}
172177

173-
final userMap = arguments['user'];
174-
if (userMap == null) {
178+
final userList = arguments['user'];
179+
if (userList == null) {
175180
instance.currentUser = null;
176181
idTokenStreamController.add(const _ValueWrapper.absent());
177182
userChangesStreamController.add(const _ValueWrapper.absent());
178183
} else {
179184
final MethodChannelUser user = MethodChannelUser(
180-
instance, multiFactorInstance, PigeonUserDetails.decode(userMap));
185+
instance,
186+
multiFactorInstance,
187+
PigeonUserDetails.decode(
188+
[PigeonUserInfo.decode(userList[0]!), userList[1]],
189+
),
190+
);
181191

182192
instance.currentUser = user;
183193
idTokenStreamController.add(_ValueWrapper(user));

packages/firebase_auth/firebase_auth_platform_interface/lib/src/platform_interface/platform_interface_firebase_auth.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ abstract class FirebaseAuthPlatform extends PlatformInterface {
6464

6565
if (currentUser != null) {
6666
currentUser as List<Object?>;
67-
currentUser = PigeonUserDetails.decode(currentUser);
67+
final firstElement = PigeonUserInfo.decode(currentUser[0]!);
68+
final secondElement = currentUser[1]!;
69+
currentUser = PigeonUserDetails.decode([firstElement, secondElement]);
6870
}
6971
return FirebaseAuthPlatform.instance.delegateFor(app: app).setInitialValues(
7072
languageCode: pluginConstants['APP_LANGUAGE_CODE'],

0 commit comments

Comments
 (0)