如何在VueJS 3中使用Firebase 9.0.1的相关方法
问题2:自定义methods中的signInAnonymously无法识别导入方法的原因
这是因为你在组件的methods中定义了和导入函数同名的方法,相当于在组件作用域内把导入的signInAnonymously变量覆盖了。组件运行时查找方法会优先取当前实例methods下定义的同名方法,不会再指向你从Firebase导入的函数,如果你在这个自定义方法内直接调用signInAnonymously,甚至会出现无限递归的问题。
解决方法有两种:
- 给自定义的登录方法起不同的名字,比如上面示例中的
handleAnonymousSignIn,避免命名冲突,这是最推荐的做法 - 如果一定要用
signInAnonymously作为方法名,可以在导入的时候给Firebase的原生方法起别名:
// 导入时设置别名避免冲突 import { auth, signInAnonymously: firebaseSignInAnonymously } from '../firebase' export default { methods: { async signInAnonymously() { try { // 调用别名指向的Firebase原生方法 await firebaseSignInAnonymously(auth) // 其他业务逻辑 } catch (err) { // 错误处理 } } } }
内容的提问来源于stack exchange,提问作者Darren Seet
相关产品推荐
相关产品推荐

