Curl Firebase REST请求中的访问令牌不工作

Curl Firebase REST请求中的访问令牌不工作,curl,firebase,firebase-authentication,Curl,Firebase,Firebase Authentication,我在向Firebase发出经过身份验证的请求时遇到一些问题 我生成了一个令牌,但当我将其发送到Firebase时,我总是收到一个未经授权的请求。当我在请求中发送访问令牌时,会得到响应。奇怪的是,它在没有参数的情况下工作 我甚至在没有访问规则的情况下进行了测试,但得到了相同的结果 当我发送curl'https://.firebaseio.com/events.json“我得到了期望值,但是如果我发送curl”https://.firebaseio.com/events.json?access_to

我在向Firebase发出经过身份验证的请求时遇到一些问题

我生成了一个令牌,但当我将其发送到Firebase时,我总是收到一个
未经授权的请求。
当我在请求中发送
访问令牌时,会得到响应。奇怪的是,它在没有参数的情况下工作

我甚至在没有访问规则的情况下进行了测试,但得到了相同的结果

当我发送
curl'https://.firebaseio.com/events.json“
我得到了期望值,但是如果我发送
curl”https://.firebaseio.com/events.json?access_token=“
答案是
{“错误”:“未经授权的请求”。}

我试着在标题中发送它,比如
curl-H“Authorization:Bearer”https://.firebaseio.com/events.json
但也不起作用

如果我在数据库中强制执行一些规则,那么没有令牌的初始请求将为我提供
{“error”:“Permission denied”}
但是如果我发送令牌,我仍然会收到
{“error”:“Unauthorized request.”}

任何帮助都将不胜感激

更新

设法把它修好了。我没有正确地拿到代币。检查后,我注意到我没有发送
https://www.googleapis.com/auth/userinfo.email执行令牌请求时,
作用域
数组中的
。添加后效果良好

更新2


正如辛猛所提到的,这一点在文章中也很清楚。

这个问题是“自我回答的”,见问题的底部。这个答案只是为了使这个问题不会被列为“未回答”。

我对AppEngine firebase数据库示例代码也有类似的问题。查看Pyrebase python代码,看起来参数应该是?auth=,但这对我也不起作用。我的问题是由调用
GoogleCredentials引起的。获取\u application\u default()。创建\u作用域(\u FIREBASE\u作用域)
。我认为这个调用将身份验证头添加到http请求中,但它做得不正确。如果打印curl默认生成的标题,您可能会在其中看到一些不需要的内容?@Calvin,
?auth=
如果我使用不推荐使用的Firebase Secret,则可以工作。不过,我将检查标题。谢谢此问题应参考官方文件。请添加您自己的答案作为答案,并将其标记为接受答案?或者,将@daniel stenberg的答案标记为已接受的答案?