Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
aiohttp、firebase和firebase管理员-是非阻塞的吗?python 3.6_Python_Python 3.x_Python 3.6_Aiohttp_Firebase Admin - Fatal编程技术网

aiohttp、firebase和firebase管理员-是非阻塞的吗?python 3.6

aiohttp、firebase和firebase管理员-是非阻塞的吗?python 3.6,python,python-3.x,python-3.6,aiohttp,firebase-admin,Python,Python 3.x,Python 3.6,Aiohttp,Firebase Admin,python 3.6 以下是我的firebase代码,用于检查firebase上是否存在用户: import firebase_admin from firebase_admin import credentials from firebase_admin import auth cred = credentials.Certificate('wow.json') default_app = firebase_admin.initialize_app(cred) def getIsUser

python 3.6

以下是我的firebase代码,用于检查firebase上是否存在用户:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import auth


cred = credentials.Certificate('wow.json')
default_app = firebase_admin.initialize_app(cred)

def getIsUser(email=None,uid=None):
        try:
            user = auth.get_user(uid)
            is_user = True
        except:
            is_user = False

    return is_user
下面是调用函数的aiohttp:

async def jwt_route(request):
    data = await request.json()
    uid = data['uid']
    is_user = getIsUser(uid=uid)

app.router.add_post('/jwt', jwt_route)

我的问题是getIsUser(uid=uid)是否正在阻塞。如果是阻塞,那么如何使其成为非阻塞?

是的,
getIsUser
是一个阻塞调用

在线程池中运行它:

loop=asyncio.get\u event\u loop()
is_user=loop.run_in_executor(无,getIsUser,uid)

我建议采用与安德鲁回答不同的方法。 在我看来,打开线程会使应用程序代码和跟踪bug变得复杂

在有支持
asyncio
的库之前,您应该使用restapi,使用
aiohttp
异步调用它

对于
auth
我使用的是不推荐使用的数据库机密,因此它并不理想,但现在可以使用