使用Firebase Web SDK实现Apple登录时displayName返回null的问题求助
Firebase Web SDK实现Apple登录时displayName返回null的问题求助
各位开发者大佬,我最近在做Firebase Web SDK集成Apple登录的功能,其他流程都走通了,但唯独user.displayName一直返回null,试了各种方法都没解决,来这儿求支招!
先贴一下我用到的核心代码片段:
var provider = new firebase.auth.OAuthProvider('apple.com'); provider.addScope('email'); provider.addScope('name'); firebase.auth() .signInWithPopup(provider) .then((result) => { console.log(result.user); // 这里打印出来的user.displayName始终是null });
我清楚Apple的授权机制:只有用户第一次授权登录该应用时才会返回姓名信息,后续登录就不会再返回。为此我特意去Apple的安全设置里取消了该应用的关联,重新测试后问题依然存在。
这里有个关键线索:我查了浏览器的网络日志,发现Google那边已经正确把firstName、lastName和displayName返回给我的Web应用了,说明问题根本不在Apple或者Google那边,而是Firebase Web SDK没有把这些信息传递到我的代码里。
我几乎把能搜的内容都翻遍了,除了换用其他第三方库之外,完全找不到解决办法。想问问有没有大佬也遇到过这个问题,并且找到了解决方案?
补充几个细节:
- 我用同样的Firebase Web SDK已经成功集成过Google登录功能,全程没有任何问题
- 我当前使用的是Firebase compat兼容库v10.7.2
备注:内容来源于stack exchange,提问作者Claudio C.
相关产品推荐
相关产品推荐

