Skip to content

Commit 1528b0d

Browse files
committed
fix(database): serializer
1 parent 96a61bf commit 1528b0d

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

packages/firebase-core/index.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { FirebaseConfig, IFirebaseOptions } from './common';
22

33

4-
declare function serialize(data: any): any;
4+
declare function serialize(data: any, wrapPrimitives?: boolean): any;
55

66
declare function deserialize(data: any): any;
77

packages/firebase-core/utils.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ function numberIs64Bit(item: number) {
88
return item < -Math.pow(2, 31) + 1 || item > Math.pow(2, 31) - 1;
99
}
1010

11-
export function serialize(data: any): any {
11+
export function serialize(data: any, wrapPrimitives: boolean = false): any {
1212
if (global.isIOS) {
1313
switch (typeof data) {
1414
case 'string':
@@ -63,6 +63,12 @@ export function serialize(data: any): any {
6363
switch (typeof data) {
6464
case 'string':
6565
case 'boolean': {
66+
if (wrapPrimitives) {
67+
if (typeof data === 'string') {
68+
return new java.lang.String(data);
69+
}
70+
return new java.lang.Boolean(data);
71+
}
6672
return data;
6773
}
6874
case 'number': {

packages/firebase-database/index.android.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ export class Reference extends Query implements IReference {
421421
return new Promise((resolve, reject) => {
422422
NSDatabaseReference().set(
423423
this.native,
424-
serialize(value),
424+
serialize(value, true),
425425
new org.nativescript.firebase.database.FirebaseDatabase.Callback({
426426
onSuccess(param0) {
427427
onComplete?.(null);
@@ -459,7 +459,7 @@ export class Reference extends Query implements IReference {
459459
return new Promise((resolve, reject) => {
460460
NSDatabaseReference().setWithPriority(
461461
this.native,
462-
serialize(newVal),
462+
serialize(newVal, true),
463463
newPriority as any,
464464
new org.nativescript.firebase.database.FirebaseDatabase.Callback({
465465
onSuccess(param0) {
@@ -484,7 +484,7 @@ export class Reference extends Query implements IReference {
484484
doTransaction(data: any): any {
485485
const newData = transactionUpdate(deserialize(data));
486486
// TODO improve
487-
return serialize(newData);
487+
return serialize(newData, true);
488488
},
489489
onComplete(error: com.google.firebase.database.DatabaseError, commited: boolean, snapshot: com.google.firebase.database.DataSnapshot): void {
490490
const ss = DataSnapshot.fromNative(snapshot);
@@ -508,7 +508,7 @@ export class Reference extends Query implements IReference {
508508
return new Promise((resolve, reject) => {
509509
NSDatabaseReference().update(
510510
this.native,
511-
serialize(values),
511+
serialize(values, true),
512512
new org.nativescript.firebase.database.FirebaseDatabase.Callback({
513513
onSuccess(param0) {
514514
onComplete?.(null);

packages/firebase-database/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nativescript/firebase-database",
3-
"version": "1.0.0-alpha.17",
3+
"version": "1.0.0-alpha.18",
44
"description": "NativeScript Firebase - Database",
55
"main": "index",
66
"typings": "index.d.ts",

0 commit comments

Comments
 (0)