首页 > 解决方案 > 如何在不在 firebase 实时数据库上生成 firebase id 的情况下发布我的数据?

问题描述

我正在尝试将我的用户的身份验证 ID 推送到实时数据库以轻松同时获取它们,但实时数据库继续在 UUID 下生成 ID。

  Future<http.Response> createUserProfile(
    String id,
    String email,
    String userName,
  ) async {
    return await http.post(
      ServiceKeys.FIREBASE_URL + "/users/$id.json",
      headers: <String, String>{
        'Content-Type': 'application/json; charset=UTF-8',
      },
      body: jsonEncode(<String, String>{'name': userName, 'email': email}),
    );
  }
}

Firebase 生成的数据树 ID

我不想生成“-MCHpnJZnKvth-L89axu”。而是直接将其写入我提供的 id 中。

标签: jsonflutterpostdartfirebase-realtime-database

解决方案


尝试使用 put 而不是 post。Firebase API 说

POST:添加到 Firebase 数据库中的数据列表。每次我们发送 POST 请求时,Firebase 客户端都会生成一个唯一的密钥,例如消息/用户//

PUT:将数据写入或替换到定义的路径,例如消息/用户/用户1/

由于您已经有了 uid,因此它将是一个已定义的路径


推荐阅读