我的 firebase 函数中有一个 firestore 查询,用于检索文档中是否具有特定值(例如:如果名称字段等于“name”)。我已经编写了代码并将该函数声明为functions.https.onCall,以便我可以在我的应用程序中调用它。调用该函数可以工作,但是启动后它不会执行任何操作。这是我编写的导致问题的查询:
let query = admin.firestore().collection('...').where('...', '==', value).orderBy('...').limit(1);
query.get().then(snapshot => {
let ... = snapshot[0];
Run Code Online (Sandbox Code Playgroud)
这是我的函数声明:
exports.functionName = functions.https.onCall((data, context) => {
Run Code Online (Sandbox Code Playgroud)
该函数应该做的是记录从调用代码传递给它的内容,执行查询(当前使用有效数据进行测试),然后继续执行函数的其余部分。现在它没有做任何事情,但是当我删除它可以工作的 where 函数但无法获取我正在寻找的特定文档时。感谢您对我的问题的任何见解。
我试图让我的应用程序和应用程序的共享扩展共享一个登录令牌,但是当我在设置访问组后登录时,登录失败。我正在使用密码身份验证。
我试过在不设置访问组的情况下登录并且工作正常,但是第二次我设置了访问组失败。我已在两个应用程序上启用钥匙串共享,并将钥匙串组设置为相同,并正确设置了权利。
这是我使用设置访问组的代码:
private func switchGroup() {
do {
try Auth.auth().useUserAccessGroup("<<<GROUP_NAME>>>")
}
catch let error as NSError {
print("Error changing the user group \(error.localizedDescription)")
}
}
Run Code Online (Sandbox Code Playgroud)
这是在我登录、注册并尝试获取当前用户之前调用的。
以下是我的权利:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)<<<BUNDLE_IDENITIFIER>>></string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
应该发生的是登录成功。相反,登录错误并显示以下错误消息:
可选 - 一些:Error Domain=FIRAuthErrorDomain Code=17995“访问钥匙串时出错。@c NSError.userInfo 字典中的@c NSLocalizedFailureReasonErrorKey 字段将包含有关遇到的错误的更多信息” UserInfo={FIRAuthErrorUserInfoNameKey=ERROR_KEYCHAIN_ERROR, NSLocalizedFailureReason =SecItemAdd (-34018), NSLocalizedDescription=访问钥匙串时出错。@c NSError.userInfo 字典中的@c NSLocalizedFailureReasonErrorKey 字段将包含有关遇到的错误的更多信息}
你能提供的任何帮助都会很棒。谢谢你。