Domain Wide Delegation在Firebase云端失效但本地正常,求排查原因
以下是几个可能导致该问题的原因及对应的检查点:
云端服务账号未配置域范围委派
本地开发时可能使用了自定义的服务账号密钥文件,但云端云函数默认使用的是[项目ID]@appspot.gserviceaccount.com这个默认服务账号。请确认这个默认服务账号已在Google Workspace Admin Console中配置了域范围委派,并且添加了Calendar API的必要权限(如https://www.googleapis.com/auth/calendar或https://www.googleapis.com/auth/calendar.events)。权限同步延迟
即使你已经配置了域范围委派,Google Cloud的权限同步可能存在延迟。如果是刚配置完就部署的云函数,建议等待10-15分钟后重新测试,或者在Google Cloud Console中重新触发云函数的部署。代码中模拟用户身份缺失或错误
使用域范围委派调用Calendar API时,必须模拟一个域内的有效用户身份(比如user@yourdomain.com)。检查云端代码是否正确调用了createDelegated(userEmail)方法来生成授权客户端,确保模拟的用户拥有Calendar的编辑权限。权限范围不足
确认在域范围委派中添加的OAuth权限范围是否包含写入权限。如果仅添加了只读权限(如https://www.googleapis.com/auth/calendar.readonly),则无法添加参会者,需要调整为具备写入能力的权限范围。云端项目未启用Calendar API
检查Google Cloud Console的API库,确认Calendar API已在云端项目中启用。本地模拟器可能绕过了这一步,但云端环境必须明确启用对应API才能正常调用。
内容的提问来源于stack exchange,提问作者Douglas Ferguson

