firebase-admin在使用push()时向实时数据库添加随机字母数字键

ehxuflar  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(91)

我正在使用Python firebase-admin库来集成Django rest框架和Firebase实时存储。我正在使用push()函数来创建一个新的子节点。然而,该函数会为每个子节点添加一个字母数字键。有没有方法可以避免这种情况,并为数据添加自己的自定义键?
参见以下示例:

def post(self, request):
        """Function to handle post requests

        Args:
            request (_type_): _description_
        """

        # Get the data to be posted from the request 
        name = request.POST.get('name')
        age = request.POST.get('age')
        location = request.POST.get('location')

        # Set the reference to the database
        ref = db.reference('/')

        # Push the data to the database
        ref.push({"user1" : {
            'Name': name,
            'Age': age,
            'Location': location
        }})

        return JsonResponse({"message": "Data posted successfully"}, status=200)

运行此命令时,节点的创建如下所示

{
    "data": {
        "-NNzIPh4SUHo6FLhs060": {
            "user1": {
                "Age": "20",
                "Location": "US",
                "Name": "Dummy name 2"
            }
        },
        "user2": {
            "Age": "22",
            "Location": "count1",
            "Name": "Dummy 1"
        }
    }
}

-NNzIPh4SUHo6FLhs060密钥已创建,我希望对其进行自定义。

dtcbnfnu

dtcbnfnu1#

调用push()是对数据库的一个指令,用于为传递的数据生成一个新的唯一子节点。如果要将数据直接写入指定的路径,请使用set()而不是push()
另请参阅Firebase文档中有关保存数据的内容

相关问题