Appwrite Flutter短信认证连接超时问题排查求助
排查Appwrite手机号认证连接超时问题
针对你遇到的AppwriteException: null, Connection timed out (0)错误,按以下步骤逐一排查:
验证Appwrite端点的可达性
确认AppConstants.endpointId的正确性:- 若在模拟器/真机上测试,不能用
localhost,需替换为Appwrite服务器的本地IP(比如http://192.168.x.x:80/v1)或公网地址 - 在设备的浏览器中直接访问该端点,检查是否能返回Appwrite的API响应(正常会返回包含"status":"ok"的JSON)
- 若在模拟器/真机上测试,不能用
检查Appwrite服务的网络配置
- 确认docker-compose.yml中Appwrite容器的端口映射正确(默认80/443端口已映射到宿主机)
- 检查宿主机防火墙是否开放了Appwrite的服务端口,确保设备能正常连接
校验TextMagic配置的有效性
- 确认
.env中的_APP_SMS_PROVIDER已替换掉占位符[USERNAME]和[API-KEY],使用的是TextMagic的真实账号信息 - 手动测试TextMagic API连通性:
若无法收到短信,说明TextMagic的账号或密钥存在问题,需先解决这个环节curl -X POST https://rest.textmagic.com/api/v2/sms -u YOUR_USERNAME:YOUR_API_KEY -d "text=Test&phones=+你的测试手机号" - 检查
_APP_SMS_FROM是否是TextMagic后台已验证的发送号码/短代码,未验证的号码无法用于发送短信
- 确认
查看Appwrite服务日志
执行以下命令查看Appwrite的详细日志,定位具体错误:docker logs appwrite日志中若出现TextMagic连接失败的信息,说明是Appwrite到短信服务商的网络问题(比如宿主机无法访问TextMagic的API)
确认客户端网络权限
- Android:在
AndroidManifest.xml中添加网络权限:<uses-permission android:name="android.permission.INTERNET"/> - iOS:在
Info.plist中添加网络访问权限配置,确保应用能正常发起网络请求
- Android:在
内容的提问来源于stack exchange,提问作者nb13
相关产品推荐
相关产品推荐

