Explicitly set createdAt and lastLoginAt when cloning UserImpl #7066
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Discussion
Problem being addressed:
When calling
updateCurrentUser
the code clones the UserImpl class but incorrectly clones the UserMetadata resulting inundefined
values.Line of code calling
_clone
:firebase-js-sdk/packages/auth/src/core/auth/auth_impl.ts
Line 343 in bea604e
_clone
function: https://github.com/firebase/firebase-js-sdk/blob/master/packages/auth/src/core/user/user_impl.ts#L142.The spread operator only passes keys on the UserImpl class and will not pass the Metadata properties belonging to
UserMetadata
. This causes https://github.com/firebase/firebase-js-sdk/blob/master/packages/auth/src/core/user/user_impl.ts#L142 to fail.This is missed in the test because the metadata properties are never set:
firebase-js-sdk/packages/auth/src/core/user/user_impl.test.ts
Line 257 in b6c231a