这是我的云函数
exports.addUser = functions.https.onCall((data, context) => {
console.log(`Hi ${data}`);
return `Hi there ${data["name"]}`;
});
这是我在点击按钮时的代码
final HttpsCallable callable = CloudFunctions.instance
.getHttpsCallable(functionName: 'addUser')
..timeout = const Duration(seconds: 30);
try {
final HttpsCallableResult result = await callable
.call(<String, dynamic>{"name": "Pritish"});
debugPrint(result.data);
} on CloudFunctionsException catch (e) {
debugPrint('caught generic exception');
debugPrint(
"${e.message.toString()} ${e.code.toString()} ${e.details.toString()} ${e.toString()}");
}
但我一直收到以下错误Unhandled Exception: PlatformException(functionsError, Cloud function failed with exception., {message: PERMISSION_DENIED, details: null, code: PERMISSION_DENIED})
我没有访问任何firestore
数据库数据,为什么它显示权限错误。此外,我正在使用firebase
的其他服务,如auth,signin, firestore,storage
,它们似乎对我来说很好。我也正确地部署了该功能。我还有FCM的其他功能,它们似乎运行得很好。Firebase的Android设置也正确完成
这就是我在web上使用它的方式。不确定你是在移动设备上还是在网络上运行它,但我很确定你的firebase配置要么是错误的,要么是不存在的。
还请注意,您没有为您的功能提供region
。
final FirebaseApp app = await FirebaseApp.configure(
name: 'XYZ',
options: const FirebaseOptions(
apiKey: "AIzaxxxxxxxxxxxxxxxxxxx",
databaseURL: "https://xyz.firebaseio.com",
projectID: "xyz",
storageBucket: "xyz.appspot.com",
gcmSenderID: "123456789",
googleAppID: "1:1213123:web:23904832948",
trackingID: "G-XYZXYZ123"),
);
CloudFunctions(app: app, region: "europe-west2")
.getHttpsCallable(functionName: 'addUser')
.call({'user': user})
.catchError((error, stack) => print("Error $errorn$stack"))
.asStream()
.listen((event) {
print("Success ${event.data}");
});