Начать получать сообщение об ошибке: «Не алфавитный символ в элементе с ведущей альфа:« Ошибка при попытке обновить документ - PullRequest
0 голосов
/ 27 декабря 2018

Я так делаю некоторое время.

Все работает нормально в течение последних двух месяцев, и из ниоткуда появляется эта ошибка: «Не алфавитный символ в элементе с ведущей альфой:« При попытке обновления в firestore.Я даже не знаю, с чего начать поиск проблемы.

# returns true if update was successful
def UpdateUser(self, user):
    try:
        # update will fail if it cant find an already existing document
        doc_ref = self._db.collection(USER).document(user._username)

        # update the values | this will fail if it doesn't exist
        doc_ref.update({
            u'Username': user._username,
            u'Password': user._password, 
            # u'Time Created': user._time_created,
            u'Last logged in': user._last_logged_in,
            u'Active': user._active,
            u'Phone': user._phone,
            u'Address': user._address,
            u'State': user._state,
            u'City': user._city,
            u'Zipcode': user._zipcode,
            u'Stripe Customer Id': user._stripe_customer_id,
            u'Email Activated': user._email_activated,
            u'Full Name': user._full_name,
            u'Id': user._id,
            u'Group Ids': user._group_ids,
        })
        return True
    except Exception as e:
        print(e)
        print("Failed to update {}".format(user._username))
        return False   

Я ожидаю, что вывод будет успешным обновлением, но, похоже, выдает ошибку.

Ответы [ 2 ]

0 голосов
/ 18 августа 2019

в соответствии с этим ответом вам необходимо использовать field_path () для любой строки, которая содержит символ, который не является буквой, цифрой или подчеркиванием.В вашем случае у вас есть пробелы в ваших ключах, поэтому вы должны очистить их, используя field_path.этот код должен исправить вашу проблему:

doc_ref.update({
    u'Username': user._username,
    u'Password': user._password, 
    # self._db.field_path(u'Time Created'): user._time_created,
    self._db.field_path(u'Last logged in'): user._last_logged_in,
    u'Active': user._active,
    u'Phone': user._phone,
    u'Address': user._address,
    u'State': user._state,
    u'City': user._city,
    u'Zipcode': user._zipcode,
    self._db.field_path(u'Stripe Customer Id'): user._stripe_customer_id,
    self._db.field_path(u'Email Activated'): user._email_activated,
    self._db.field_path(u'Full Name'): user._full_name,
    u'Id': user._id,
    self._db.field_path(u'Group Ids'): user._group_ids,
})
0 голосов
/ 09 мая 2019

я боролся с той же ошибкой.Я обычно получаю эту ошибку всякий раз, когда я запускаю код, показанный ниже:

db.collection(''+collectionName).document(''+docId).update({'api-key':newkey})

, он выдает эту ошибку, потому что у меня есть не буквенно-цифровой символ в самом ключе.Поэтому мне пришлось изменить ключ в базе данных Firebase и изменить его в коде так:

 db.collection(''+collectionName).document(''+docId).update({'apikey':newkey})

В вашем случае удалите все пробелы для ключей (сделайте то же самое в базе данных Firebase) и попробуйте это:

doc_ref.update({
        u'Username': user._username,
        u'Password': user._password, 
        u'TimeCreated': user._time_created,
        u'Lastloggedin': user._last_logged_in,
        u'Active': user._active,
        u'Phone': user._phone,
        u'Address': user._address,
        u'State': user._state,
        u'City': user._city,
        u'Zipcode': user._zipcode,
        u'StripeCustomerId': user._stripe_customer_id,
        u'EmailActivated': user._email_activated,
        u'FullName': user._full_name,
        u'Id': user._id,
        u'GroupIds': user._group_ids,
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...