Laravel中从Firebase Firestore读取email字段报错求助
解决Firestore读取users集合email字段报错问题
检查字段名大小写匹配
Firestore字段名区分大小写,确保集合中存储的字段名和代码里的['email']完全一致(比如不要写成Email或EMAIL)。先判断字段存在性再读取
避免因部分文档缺失email字段导致报错,修改代码如下:
public function index() { $users = (new Factory())->withServiceAccount(__DIR__ . '/autocar-f28fb-firebase-adminsdk-h8yrz-96c611a72e.json') ->createFirestore()->database()->collection('users')->documents()->rows(); foreach ($users as $document) { // 先验证文档存在且包含email字段 if ($document->exists() && array_key_exists('email', $document->data())) { echo $document->data()['email']; } else { echo '当前文档无email字段'; } printf(PHP_EOL); } }
- 检查数据结构是否嵌套
如果email字段嵌套在子对象中(比如user_info.email),需要调整读取路径:
// 示例:读取嵌套字段 echo $document->data()['user_info']['email'];
- 使用SDK安全获取方法
Firestore PHP SDK提供get()方法,可安全获取字段并设置默认值:
echo $document->get('email', '无邮箱信息');
内容的提问来源于stack exchange,提问作者Mahmod Algeriany
相关产品推荐
相关产品推荐

