错误:verifier._reset 不是函数。尝试使用 Firebase 使用手机登录时,反应原生和 Expo
Posted
技术标签:
【中文标题】错误:verifier._reset 不是函数。尝试使用 Firebase 使用手机登录时,反应原生和 Expo【英文标题】:Error: verifier._reset is not a function. when trying to Sign in with phone using firebase, react native and Expo 【发布时间】:2021-12-18 03:33:48 【问题描述】:我正在尝试在 mu react 本机应用程序中实现电话登录,但出现以下错误:
verifier._reset is not a function. (In 'verifier._reset()', 'verifier._reset' is undefined)
at http://192.168.1.2:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&minify=false:126633:27 in <unknown>
at node_modules/tslib/tslib.js:60:8 in createExporter
at node_modules/tslib/tslib.js:18:0 in <global>
at http://192.168.1.2:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&minify=false:116838:35 in rejected
这就是我尝试实现签名的方式:
const SignUp = () =>
const [phoneNumber, setPhoneNumber] = useState("")
const recaptchaVerifier = React.useRef(null);
const auth = getAuth(app)
const sendCode = async () =>
console.log(recaptchaVerifier.current)
signInWithPhoneNumber(auth, phoneNumber, recaptchaVerifier.current!)
.then(r =>
console.log("Hej!")
).catch(err=>
console.log(err)
)
return (
<SafeAreaView
style=tw.style('w-full')>
<FirebaseRecaptchaVerifierModal
ref=recaptchaVerifier
firebaseConfig=app.options
attemptInvisibleVerification=true
/>
<TextInput
style=tw.style('w-1/2', 'shadow', 'border', 'rounded', 'py-2', 'px-3', 'text-gray-700')
onChangeText=setPhoneNumber
keyboardType="phone-pad"
/>
<Button title="Send Code" onPress=sendCode/>
</SafeAreaView>
)
export default SignUp
我也尝试过这样实现:
const phoneProvider = new PhoneAuthProvider(auth) const verificationId = await phoneProvider.verifyPhoneNumber(phoneNumber, recaptchaVerifier.current!)
但我得到了相同的结果。
我完全没有想法,所以任何帮助将不胜感激。
【问题讨论】:
我也面临同样的问题,如果问题解决了,我可以知道您采用的方法是什么 【参考方案1】:打开这个文件:
node_modules\expo-firebase-recaptcha\build\FirebaseRecaptchaVerifier.js
并添加
export default class FirebaseRecaptchaVerifier
token;
constructor(token)
this.token = token;
get type()
return 'recaptcha';
async verify()
return this.token;
async _reset()
在此处添加 _reset() 函数并保存!错误将得到修复。
【讨论】:
添加了与您提到的相同的内容,但仍然在该文件中看到相同的错误代码如下export default class FirebaseRecaptchaVerifier token; constructor(token) this.token = token; get type() return 'recaptcha'; async verify() return this.token; async _reset()
我错过了什么吗?
杰夫的回答解决了这个问题。我没有注意到 OP 正在使用 FirebaseRecaptchaVerifierModal。如果您使用的是 Modal,则需要在 FirebaseRecaptchaVerifierModal.js 中添加 _reset 函数【参考方案2】:
这个答案很接近,但即使在修补软件包后我也遇到了同样的问题。这似乎是最近的问题,并且 OP 使用的是 Modal 形式,而不是原始验证器。
相反,将以下内容添加到 node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.js 第 31 行附近:
async _reset()
return
【讨论】:
【参考方案3】:只需更新您的 expo 包,即可解决。 (见here)
【讨论】:
提供指向其他网站的链接是个好主意,但无需跟随链接,anwser 应该是有用且清晰的。考虑添加一些细节或引用。【参考方案4】:在您的 package.json 中将 "expo-firebase-recaptcha": "~2.0.2"
更改为 "expo-firebase-recaptcha": "~2.1.0"
。然后运行yarn install
以获取最新更新。
【讨论】:
以上是关于错误:verifier._reset 不是函数。尝试使用 Firebase 使用手机登录时,反应原生和 Expo的主要内容,如果未能解决你的问题,请参考以下文章
Easy_install 或 pip 安装错误:[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:579)]
urllib.error.URLError: <urlopen 错误 [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:11
Unable to verify your data submission.加入了_csrf也报400错误的解决
pandas --index ,reindex, set_index, reset_index , reindex_like函数 之 set_index
pandas --index ,reindex, set_index, reset_index , reindex_like函数 之 set_index
解决pyhton aiohttp ssl:None [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)(代