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

Android中Firebase登录后如何仅显示特定用户的SQLite数据?

解决Firebase认证与SQLite用户数据关联的问题

核心逻辑

要实现仅展示当前登录用户的数据,核心是给每条SQLite数据绑定Firebase用户的唯一UID,查询时只筛选当前用户UID对应的数据。

具体实现步骤

1. 调整SQLite表结构

在存储用户业务数据的表中新增一个user_uid字段(TEXT类型),用来存储Firebase用户的唯一标识。示例建表语句:

CREATE TABLE IF NOT EXISTS user_records (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    user_uid TEXT NOT NULL -- 关联Firebase用户UID的字段
);

2. 写入数据时绑定UID

每次向SQLite插入数据前,先获取当前登录用户的UID,再把UID和业务数据一起存入表中:

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser != null) {
    String uid = currentUser.getUid();
    // 封装数据,包含user_uid字段
    ContentValues values = new ContentValues();
    values.put("title", "示例标题");
    values.put("content", "示例内容");
    values.put("user_uid", uid);
    // 插入到SQLite
    db.insert("user_records", null, values);
}

3. 查询数据时筛选当前用户的UID

查询SQLite数据时,通过WHERE条件指定当前用户的UID,只返回该用户的数据:

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser != null) {
    String uid = currentUser.getUid();
    Cursor cursor = db.query(
        "user_records",
        null,
        "user_uid = ?", // 筛选条件
        new String[]{uid}, // 绑定参数,防止SQL注入
        null,
        null,
        null
    );
    // 遍历cursor处理当前用户的专属数据
    if (cursor.moveToFirst()) {
        do {
            String title = cursor.getString(cursor.getColumnIndexOrThrow("title"));
            // 处理数据逻辑
        } while (cursor.moveToNext());
    }
    cursor.close();
}

4. 未登录状态处理

如果用户未登录,直接限制数据读写操作,比如跳转到登录页:

FirebaseUser currentUser = FirebaseAuth.getInstance().getCurrentUser();
if (currentUser == null) {
    Intent intent = new Intent(this, LoginActivity.class);
    startActivity(intent);
    return;
}

参考资源方向

  • Firebase官方文档中FirebaseUser类的相关说明,重点掌握getUid()方法的使用场景
  • Android官方SQLite开发指南,学习带参数查询的写法和表结构设计规范

内容的提问来源于stack exchange,提问作者Lasma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:22:08