Firebase:编写自定义可调用云函数与Cloud Firestore触发函数

时间:2019-03-01 13:31:29

标签: firebase dart flutter google-cloud-firestore google-cloud-functions

我了解了所有有关Google Cloud Functions Triggers的知识,并且我了解它们非常适合在Cloud Firestore中进行写/更新/删除之前进行一些数据预处理。这是真的吗?

但是,我不想听数据库中的更改,而是想在Cloud Functions中编写自定义代码并直接从客户端SDK调用它。

我要这样做的原因是,我不想在我的客户端代码中使用长时间复杂的数据库集成逻辑。例如,我只想调用一个名为createGame的云函数,然后让自定义云函数处理对Firestore的嵌套调用,进行健全性检查并仅向我返回客户端将要显示的干净数据。

我发现有一个名为cloud_functions的Flutter插件。 此文档还显示了如何编写custom callable functions

我们可以编写自定义的可调用云函数,如下所示:

exports.createGame = functions.https.onCall((data, context) => {
  // ...
  return {
     ...
  }
});

我们可以从Flutter客户端调用相应的自定义可调用云函数,如下所示:

final dynamic response = await CloudFunctions.instance.call(
                        functionName: 'createGame',
                        parameters: <String, dynamic>{
                          'message': 'hello world!',
                          'count': clientCount,
                        },
                      );

有大量的Cloud Functions触发器示例/视频/教程。但是很少有可调用的云函数。这就是为什么我对此主题有些怀疑的原因。

问题: 我的问题是这是否是好习惯?还是应该从客户端执行此特定的Cloud Function正在执行的操作?请同时注意定价速度可靠性和其他因素:)

最后一件事,
函数实现使用https.onCall。您是否认为https放慢了速度?

0 个答案:

没有答案