Android 谷歌云功能读取Firestore中的文档,并使用规则进行保护
我是云功能的新手 我有一个Android应用程序,它通过callable client调用云函数,Cloud Functionnode.js/typescript调用Firestore读取数据 云功能代码:Android 谷歌云功能读取Firestore中的文档,并使用规则进行保护,android,node.js,firebase,google-cloud-firestore,google-cloud-functions,Android,Node.js,Firebase,Google Cloud Firestore,Google Cloud Functions,我是云功能的新手 我有一个Android应用程序,它通过callable client调用云函数,Cloud Functionnode.js/typescript调用Firestore读取数据 云功能代码: import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin'; admin.initializeApp({credential : admin.credential.appl
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp({credential : admin.credential.applicationDefault()});
exports.queryForData = functions.https.onCall((dats, context) => {
admin.firestore().collection('mydocument').get()
.then(snapshot => {
snapshot.forEach( e => {
if(e.exists)
{
console.log("docs="+e.ref.path);
return {"data":e.data()};
}
else{
console.log("No docs!!!!!")
return {"data":"empty"}
}
})
})
.catch(error => {
console.log("error occurred"+error);
return {error:error};
});
});
当我的Android应用程序调用此函数时,我收到一条错误消息catch block显示:error:无法加载默认凭据并要求检查Google Cloud Service Key set-up URL,我已设置环境变量Google_APPLICATION_CREDENTIALS以指向下载的JSON文件
我尝试过使用带有applicationDefault和functions.config.firebase的凭据,在没有参数的情况下初始化EAPP
我放置了控制台日志,以查看是否调用了该函数,是否收到了HTTP调用,是否调用了它。但问题似乎是当我试图收集时
Firestore规则允许经过身份验证的用户读取文档
我已经看过了视频教程和之前在这里提出的问题,但似乎没有一个能解决我的问题
非常感谢您的帮助 我使用.json服务帐户文件初始化。您可以从Firebase控制台生成它 我的初始化看起来像这样
const functions = require('firebase-functions');
const admin = require("firebase-admin");
const serviceAccount = require("./key.json");
const databaseURL = "https://xyz-prod.firebaseio.com";
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL
});
const db = admin.firestore()
const itemsRef = db.collection("items")
从哪里可以获取数据库url?对于我正在使用的firestore数据库,我无法找到它。我认为db url仅适用于实时数据库?此示例适用于firestore。格式为'https://.firebaseio.com这是完整的文档:我已经创建了另一个新的google默认服务帐户密钥,下载了JSON文件并设置了环境变量,现在我可以用我在上面问题中发布的相同代码连接并获取数据。