@@ -688,7 +688,7 @@ def create_user(self, uid=None, display_name=None, email=None, phone_number=None
688688
689689 def update_user (self , uid , display_name = None , email = None , phone_number = None ,
690690 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 ):
692692 """Updates an existing user account with the specified properties"""
693693 payload = {
694694 '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,
700700 }
701701
702702 remove = []
703+ remove_provider = _auth_utils .validate_provider_ids (providers_to_delete )
703704 if display_name is not None :
704705 if display_name is DELETE_ATTRIBUTE :
705706 remove .append ('DISPLAY_NAME' )
@@ -715,7 +716,7 @@ def update_user(self, uid, display_name=None, email=None, phone_number=None,
715716
716717 if phone_number is not None :
717718 if phone_number is DELETE_ATTRIBUTE :
718- payload [ 'deleteProvider' ] = [ ' phone']
719+ remove_provider . append ( ' phone')
719720 else :
720721 payload ['phoneNumber' ] = _auth_utils .validate_phone (phone_number )
721722
@@ -726,6 +727,9 @@ def update_user(self, uid, display_name=None, email=None, phone_number=None,
726727 custom_claims , dict ) else custom_claims
727728 payload ['customAttributes' ] = _auth_utils .validate_custom_claims (json_claims )
728729
730+ if remove_provider :
731+ payload ['deleteProvider' ] = list (set (remove_provider ))
732+
729733 payload = {k : v for k , v in payload .items () if v is not None }
730734 body , http_resp = self ._make_request ('post' , '/accounts:update' , json = payload )
731735 if not body or not body .get ('localId' ):
0 commit comments