From 0e30af44f0009ea7117ae12344af750ebf50703d Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 22 Sep 2022 15:31:38 +0100 Subject: [PATCH 1/3] fix(firestore, web): allow null value on Firestore data object --- .../firebase_core_web/lib/src/interop/utils/utils.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart b/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart index 18ae1d5eaab7..229b7bc23d4f 100644 --- a/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart +++ b/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart @@ -77,7 +77,7 @@ dynamic jsify( if (dartObject is Map) { var jsMap = util.newObject(); dartObject.forEach((key, value) { - util.setProperty(jsMap, key, jsify(value, customJsify)); + util.setProperty(jsMap, key, value == null ? null : jsify(value, customJsify)); }); return jsMap; } From 1f6723c63ce2a46647c75376360e00a3c83a14d2 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 22 Sep 2022 15:43:12 +0100 Subject: [PATCH 2/3] fix(firestore, web): set null value in correct place --- .../firebase_core_web/lib/src/interop/utils/utils.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart b/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart index 229b7bc23d4f..cf46ea96518c 100644 --- a/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart +++ b/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart @@ -67,6 +67,9 @@ dynamic jsify( Object? Function(Object? object)? customJsify, ]) { if (_isBasicType(dartObject)) { + if (dartObject == null) { + return null; + } return dartObject; } @@ -77,7 +80,7 @@ dynamic jsify( if (dartObject is Map) { var jsMap = util.newObject(); dartObject.forEach((key, value) { - util.setProperty(jsMap, key, value == null ? null : jsify(value, customJsify)); + util.setProperty(jsMap, key, jsify(value, customJsify)); }); return jsMap; } @@ -103,6 +106,7 @@ dynamic callMethod(Object jsObject, String method, List args) => /// `null`, [num], [bool] or [String]. It returns `false` in the other case. bool _isBasicType(Object? value) { if (value == null || value is num || value is bool || value is String) { + print('VVVVVVV'); return true; } return false; From 5789d7f84d27dd2a64c6b90d78fe5159db7c9a17 Mon Sep 17 00:00:00 2001 From: russellwheatley Date: Thu, 22 Sep 2022 15:45:56 +0100 Subject: [PATCH 3/3] fix(firestore, web): rm print --- .../firebase_core_web/lib/src/interop/utils/utils.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart b/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart index cf46ea96518c..d90fbcf91e8e 100644 --- a/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart +++ b/packages/firebase_core/firebase_core_web/lib/src/interop/utils/utils.dart @@ -106,7 +106,6 @@ dynamic callMethod(Object jsObject, String method, List args) => /// `null`, [num], [bool] or [String]. It returns `false` in the other case. bool _isBasicType(Object? value) { if (value == null || value is num || value is bool || value is String) { - print('VVVVVVV'); return true; } return false;