【问题标题】:How to Return 'Instance of Document Reference' to Flutter from Cloud Function?如何将“文档引用实例”从 Cloud Function 返回到 Flutter?
【发布时间】:2021-01-02 16:16:34
【问题描述】:

我有一个云函数,其中包含以下三行:

const admin = require("firebase-admin");
const db = admin.firestore();
db.doc(path);

我在函数中广泛使用这三行来与 firestore 交互。他们甚至将文档引用保存在 Firestore 中。但是,我无法让他们将文档引用返回到 Flutter 前端。

变量,我们称之为yourReference,在一行中保存到firestore,显示为documentReference,并在下一行返回到Flutter前端,如下所示:

response.json({
      referenceItem: yourReference,
    });

然而前端并没有得到文档引用的实例,而是一个带有文档引用相关键的映射! IE。 {_path:..., _firestore:...} 等请注意,Flutter 前端是向云函数发出 post 请求,而不是使用 Flutter 的云函数库。

【问题讨论】:

  • 您实际上是在尝试将文档引用返回给客户端,还是在尝试返回实际的文档数据?从你现在的情况看不清楚。请编辑问题以显示函数的完整代码,以及您用来调用它的 Flutter 代码。如果您的代码不工作或有错误,您应该准确地描述没有按您预期的方式工作的地方。

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


【解决方案1】:

DocumentReference 只是对数据库中文档的引用。在您的第一个 sn-p 中,引用并不比 path 多多少。所以如果你想将文档的路径返回给 Flutter 用户,你应该返回 path 而不是 DocumentReference

如果您想将文档的实际内容返回给用户,您首先需要使用以下内容阅读该文档:

let doc = await db.doc(path).get();
console.log(doc.data());

这个 sn-p 中的 doc.data() 是文档中的数据,然后您需要将其返回到 Flutter 应用程序。如何做到这一点取决于您正在使用的Cloud Function type,但如果使用 HTTPS 功能,它会是这样的。

res.write(doc.data());

【讨论】:

  • 谢谢,粉扑!然后我将路径作为字符串返回! :)
猜你喜欢
  • 2019-06-14
  • 1970-01-01
  • 2021-11-24
  • 2021-06-12
  • 2022-06-17
  • 2022-01-26
  • 2020-11-13
  • 1970-01-01
  • 2020-10-18
相关资源
最近更新 更多