You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:30:57