Ошибка обновления данных — ошибка типа: put () получил несколько значений для аргумента «соединение»

# #python-3.x #firebase #firebase-realtime-database

Вопрос:

Я работаю с Firebase и Python, но при попытке добавить эти данные конкретному пользователю у меня возникает небольшая ошибка, и она выдает следующую ошибку, спасибо, надеюсь, вы мне поможете

TypeError: put () got multiple values ​​for argument 'connection'

 def Newcompra(user,items):
    global PlayerDB,TiendaDB
    
    info = {
        "id": TiendaDB[items]["id"],
        "nombre": TiendaDB[items]["nombre"],
        "historia": TiendaDB[items]["historia"],
        "tipo": TiendaDB[items]["tipo"],
        "g_type": TiendaDB[items]["g_type"],
        "peso": TiendaDB[items]["peso"],
        "tier": TiendaDB[items]["tier"],
        "envolver": TiendaDB[items]["envolver"],
        "evento_item": TiendaDB[items]["evento_item"],
        "fabricable": TiendaDB[items]["fabricable"],
        "intercanbio": TiendaDB[items]["intercanbio"],
        "precio": TiendaDB[items]["precio"],
        "venta": TiendaDB[items]["venta"],
        "atributos": {
            "ataque": TiendaDB[items]["atributos"]["ataque"],
            "defensa": TiendaDB[items]["atributos"]["defensa"],
            "mana": TiendaDB[items]["atributos"]["mana"],
            "habilidad": TiendaDB[items]["atributos"]["habilidad"],
            "nivel": TiendaDB[items]["atributos"]["nivel"]
           
    }
}

    Fire.put("/players",user,"/bolso_arm",items,info)
return```
 

Ответ №1:

Я думаю, что вы посылаете слишком много параметров для стрельбы.

Он ожидает:

 (url, name, data, params, headers, connection)
 

В обычном использовании вы захотите использовать только первые три параметра. Я предполагаю, что ваши переменные user и items каждая из них содержат строку. Мне кажется, что вы пытаетесь написать, по такому пути, как:

 /players/some-user-name/bolso_arm
 

следующая информация:

 {
    "some-key": info
}
 

Я думаю, что вы стремитесь достичь этой записи в базе данных на Firebase:

 /players/some-user-name/bolso_arm/some-key: {
    "id": "......",
    "nombre": "......",
    "historia": "......",
....
}
 

Вы должны объединить все элементы пути, кроме последнего, в одну строку для первого параметра

Я думаю, вы хотите , чтобы первый параметр, path , был:

 /players/some-user-name/bolso_arm/
 

Затем второе name , чтобы быть:

 some-key
 

И, наконец data , быть:

 {
    "id": "......",
    "nombre": "......",
    "historia": "......",
    ....
}
 

Предлагаемый кодекс

Я добавил «/» после «игроки».

 Fire.put("/players/" user "/bolso_arm",items,info)
 

Сейчас есть только три параметра, и это должно сработать. Дайте нам знать, как у вас дела.