Intent传递sellerId至Firestore查询失效问题求助
解决Intent传递sellerId到Firestore查询失效的问题
你代码里的核心错误非常明显——获取到sellerDetail后,Firestore查询依然在使用当前用户的id变量,根本没用到传递过来的卖家ID,这就是查询失效的直接原因。
修正后的代码
// 先获取Intent传递的sellerId sellerDetail = getIntent().getStringExtra("seller"); // 先做非空判断,避免空指针异常 if (sellerDetail == null || sellerDetail.trim().isEmpty()) { Log.e(TAG, "未获取到有效的sellerId"); return; } // 用sellerDetail替代原有的id变量进行查询 firestore.collection("Users").document(sellerDetail) .addSnapshotListener(new EventListener<DocumentSnapshot>() { @Override public void onEvent(@Nullable DocumentSnapshot snapshot, @Nullable FirebaseFirestoreException error) { if (error != null) { Log.w(TAG, "Listen failed.", error); return; } if (snapshot != null && snapshot.exists()) { String name = snapshot.getString("name"); String id = snapshot.getString("id"); String email = snapshot.getString("email"); String description = snapshot.getString("description"); // 此处记得将数据绑定到UI组件上 } else { Log.w(TAG, "未找到对应卖家的文档"); } } });
额外排查步骤
- 确认跳转页面的传值逻辑:跳转前必须正确执行
intent.putExtra("seller", 真实卖家ID);,可以在跳转前打印该ID,确保不是空值或错误值。 - 在接收页面的
onCreate里打印sellerDetail:Log.d(TAG, "收到的sellerId: " + sellerDetail);,验证Intent传值是否成功。 - 核对Firestore文档ID:确保
sellerDetail的值与Users集合中卖家文档的ID完全匹配(注意大小写、空格、特殊字符等细节)。
内容的提问来源于stack exchange,提问作者Me Compu
相关产品推荐
相关产品推荐

