【发布时间】:2020-05-27 02:08:10
【问题描述】:
希望这与我发布的另一个问题不太相似。我正在尝试使用 Admin SDK 从 Firebase Functions 读取/写入我的应用程序的数据库。一直有问题。 这是函数:
exports.createAssetMux = functions.https.onCall((data, context) => {
console.log('data: ', data)
return admin.firestore().collection('users').doc(data.id).get()
.then((doc) => {
console.log('firestore document: ', doc)
return {data: 'success'}
}).catch(error => {
console.log('error message: ', error)
return {data: 'there was an issue'}
});
});
下面是回复:
firestore document: DocumentSnapshot {
> _fieldsProto: undefined,
> _ref: DocumentReference {
> _firestore: Firestore {
> _settings: [Object],
> _settingsFrozen: true,
> _serializer: [Serializer],
> _projectId: 'live-from-868ea',
> registeredListenersCount: 0,
> _lastSuccessfulRequest: 1590544300258,
> _backoffSettings: [Object],
> _preferTransactions: false,
> _clientPool: [ClientPool]
> },
> _path: ResourcePath { segments: [Array] },
> _converter: {
> toFirestore: [Function: toFirestore],
> fromFirestore: [Function: fromFirestore]
> }
> },
> _serializer: Serializer { createReference: [Function (anonymous)] },
> _readTime: Timestamp { _seconds: 1590544300, _nanoseconds: 250711000 },
> _createTime: undefined,
> _updateTime: undefined
> }
当我尝试写入数据库或更新任何内容时,这是我得到的响应:
error message: Error: 5 NOT_FOUND: no entity to update: app: "dev~my-firestore"
path <
Element {
type: "users"
name: "kPuVNXsFFIyhs3Qad06B"
}
>
code: 5,
details: 'no entity to update: app: "dev~my-firestore"\n' +
'path <\n' +
' Element {\n' +
' type: "users"\n' +
' name: "kPuVNXsFFIyhs3Qad06B"\n' +
' }\n' +
'>\n',
metadata: Metadata {
internalRepr: Map(1) { 'content-type' => [Array] },
options: {}
}
}
注意:我的实际应用名称已替换为 my-firestore,但我认为问题在于它之前的 dev~ 部分,我保留了该部分。我需要更改一些配置设置吗?我检查了我拥有的每个配置文件,但没有一个包含 dev~ 部分。
【问题讨论】:
-
您能否检查here 解释的选项并验证您是否可以更改您的应用程序正在检查的名称?
-
我真的很想避免创建一个新项目。但也许走这条路并不像我想的那么难。另外,如果我的目标是 iOS,这会是一样的吗?
-
嗨@MarkRosenberg,这对你来说应该不是什么大问题。通常这是避免此名称问题的最佳选择,因为文件都是基于同一个名称创建和配置的。对于 iOS,我不确定,但我认为应该是一样的,因为它们在您创建项目时也创建了配置文件。
-
我的函数使用 admin.auth() 函数。我可以在创建新帐户时创建一个用户对象,并将其保存到适当的数据库集合中。为什么问题会发生在一个函数中而不是另一个相同的文件和所有内容中?此外,我已经为该项目准备了两个应用程序,显然这是每个项目允许的最大数量。
-
我刚刚找到了一个使用 firebase serve --only 函数的解决方法。我已经搞砸了模拟器和他们所有的错误。
标签: node.js firebase google-cloud-firestore google-cloud-functions