diff --git a/src/user.js b/src/user.js index dd5f6948..e5c86e3f 100644 --- a/src/user.js +++ b/src/user.js @@ -16,7 +16,7 @@ function MockFirebaseUser(ref, data) { this.emailVerified = !!data.emailVerified; this.isAnonymous = !!data.isAnonymous; this.metadata = data.metadata; - this.providerData = data.providerData; + this.providerData = data.providerData || []; this.providerId = data.providerId; this.refreshToken = data.refreshToken; } @@ -111,4 +111,26 @@ MockFirebaseUser.prototype.getIdToken = function (forceRefresh) { }); }; +MockFirebaseUser.prototype.toJSON = function() { + const json = { + uid: this.uid, + email: this.email, + emailVerified: this.emailVerified, + displayName: this.displayName, + photoURL: this.photoURL, + phoneNumber: this.phoneNumber, + disabled: this.disabled, + metadata: this.metadata && this.metadata.toJSON(), + passwordHash: this.passwordHash, + passwordSalt: this.passwordSalt, + customClaims: JSON.parse(JSON.stringify(this.customClaims)), + tokensValidAfterTime: this.tokensValidAfterTime, + }; + json.providerData = []; + for (const entry of this.providerData) { + json.providerData.push(entry.toJSON()); + } + return json; +} + module.exports = MockFirebaseUser;