如何在 Django 服务器上配置 firebase 管理?

问题描述 投票:0回答:2

我正在尝试添加自定义令牌以进行用户身份验证(电话号码和密码),并且根据参考文档,我想配置服务器以生成自定义令牌。

我已经安装了,

$ sudo pip install firebase-admin

并设置环境:export GOOGLE_APPLICATION_CREDENTIALS="[to json file at my server]"

我在我的服务器上使用 Django 项目,我在其中创建了所有 API。

我被困在它说初始化应用程序的这一点上:

default_app = firebase_admin.initialize_app()

我应该在 Django 文件中的什么位置编写上述语句?我应该如何生成端点来获取自定义令牌?

问候, PD

django firebase firebase-realtime-database firebase-authentication firebase-admin
2个回答
2
投票
pip install firebase-admin

credentials.json 文件包含一些私钥。因此,您不能直接添加到您的项目中。如果您使用 git 版本系统并且希望将此文件托管在项目文件夹中,则必须将文件名添加到“.gitignore”中。

设置您的操作系统环境变量。您可以用于 MacOSX 或 Linux 发行版;用于在窗口操作系统中设置变量(https://www.computerhope.com/issues/ch000549.htm)。

$ export GOOGLE_APPLICATION_CREDENTIALS='/path/to/credentials.json'

这部分很重要,谷歌包(它与 firebase_admin 包一起提供)查看凭据的一些条件。其中之一是 os.environ.get(‘GOOGLE_APPLICATION_CREDENTIALS’)。如果您设置此文件,则不需要任何初始化 Firebase 的操作。否则你应该手动定义。

对于初始 Firebase 看看。设置配置 (https://firebase.google.com/docs/firestore/quickstart#initialize)

创建一个名为“firebase.py”的文件。

$ touch firebase.py

现在我们可以使用“firebase_admin”包进行查询。我们的 firebase.py 看起来像;

import time
from datetime import timedelta
from uuid import uuid4

from firebase_admin import firestore, initialize_app

__all__ = ['send_to_firebase', 'update_firebase_snapshot']

initialize_app()

def send_to_firebase(raw_notification):
 db = firestore.client()
 start = time.time()
 
db.collection('notifications').document(str(uuid4())).create(raw_notification)
 end = time.time()
 spend_time = timedelta(seconds=end - start)
 return spend_time


def update_firebase_snapshot(snapshot_id):
 start = time.time()
 db = firestore.client()
 db.collection('notifications').document(snapshot_id).update(
    {'is_read': True}
 )
 end = time.time()
 spend_time = timedelta(seconds=end - start)
 return spend_time

您参考此链接(https://medium.com/@canadiyaman/how-to-use-firebase-with-django-project-34578516bafe


0
投票

问题主要与 IDE 相关。通过终端运行 Django 项目,而不是 VS Code 或任何其他 IDE 的集成终端,可以防止问题发生。

© www.soinside.com 2019 - 2024. All rights reserved.