我的expo(反应性本机)项目一直运行良好。我所做的就是尝试在Android设备上构建它,现在突然在Android和ios上都失败了。即使我返回git上的版本,它仍然会在同一位置(以前该位置无法正常运行)上出错。
此行有误
export const getIdentityId = async () => {
try {
const credentials = await Auth.currentCredentials()
/* eslint-disable-next-line */
const identityId = credentials._identityId
return { identityId }
} catch (error) {
return { error }
}
}
错误看起来像这样
[TypeError: n.getPromise is not a function. (In 'n.getPromise()', 'n.getPromise' is undefined)]
正如我所说,导致此问题的代码更改为零。
答案 0 :(得分:0)
好吧,在经过很多努力之后,我删除了我的项目并重新克隆了它(使用npm安装),它又可以正常工作了。不知道...
答案 1 :(得分:0)
在解决我自己的应用程序中的问题时遇到此问题,进行澄清可能会帮助其他人:
OP的问题可能与他的应用程序客户端和AWS ID池之间的配置有关
在文档中请注意,AWS凭证访问ID池:
https://aws-amplify.github.io/docs/js/authentication#aws-auth
解决他的问题的方法(与我的情况相同)可能是对身份池中角色设置的某种更改,需要对此进行修复。
就我而言,我感到困惑,因为我的Signin / Login / etc一切正常。然后,当我回想起那些相互关联的,分别配置的那一刻时,我有一个“ oh duh”的时刻。
由于他的解决方案是重新克隆一个新应用程序并且它像魔术一样工作,因此可能是该错误是在AWS控制台中手动进行的,并且其基础设置(yaml文件等)是正确的...
如果您使用的是AWS-cli,则此Auth.currentCredentials()调用的结果至少有一部分是您的AWS ClI配置,因此您尚不知道这一点:
cat ~/.aws/credentials
是要记住的方便的bash命令...
打猎不错。