@@ -688,7 +688,7 @@ def create_user(self, uid=None, display_name=None, email=None, phone_number=None
688
688
689
689
def update_user (self , uid , display_name = None , email = None , phone_number = None ,
690
690
photo_url = None , password = None , disabled = None , email_verified = None ,
691
- valid_since = None , custom_claims = None ):
691
+ valid_since = None , custom_claims = None , providers_to_delete = None ):
692
692
"""Updates an existing user account with the specified properties"""
693
693
payload = {
694
694
'localId' : _auth_utils .validate_uid (uid , required = True ),
@@ -700,6 +700,7 @@ def update_user(self, uid, display_name=None, email=None, phone_number=None,
700
700
}
701
701
702
702
remove = []
703
+ remove_provider = _auth_utils .validate_provider_ids (providers_to_delete )
703
704
if display_name is not None :
704
705
if display_name is DELETE_ATTRIBUTE :
705
706
remove .append ('DISPLAY_NAME' )
@@ -715,7 +716,7 @@ def update_user(self, uid, display_name=None, email=None, phone_number=None,
715
716
716
717
if phone_number is not None :
717
718
if phone_number is DELETE_ATTRIBUTE :
718
- payload [ 'deleteProvider' ] = [ ' phone']
719
+ remove_provider . append ( ' phone')
719
720
else :
720
721
payload ['phoneNumber' ] = _auth_utils .validate_phone (phone_number )
721
722
@@ -726,6 +727,9 @@ def update_user(self, uid, display_name=None, email=None, phone_number=None,
726
727
custom_claims , dict ) else custom_claims
727
728
payload ['customAttributes' ] = _auth_utils .validate_custom_claims (json_claims )
728
729
730
+ if remove_provider :
731
+ payload ['deleteProvider' ] = list (set (remove_provider ))
732
+
729
733
payload = {k : v for k , v in payload .items () if v is not None }
730
734
body , http_resp = self ._make_request ('post' , '/accounts:update' , json = payload )
731
735
if not body or not body .get ('localId' ):
0 commit comments