将来自 Api 响应的数据添加到 Android 中的 Firebase 数据库中

Posted

技术标签:

【中文标题】将来自 Api 响应的数据添加到 Android 中的 Firebase 数据库中【英文标题】:Add data from Api response into Firebase Database in Android 【发布时间】:2019-10-04 16:05:49 【问题描述】:

我想通过 android 中的 Volley API 响应将数据添加到 firebase 数据库。

"data": [
        "id": 1,
        "full_name": "abc",
        "email": "abc999@gmail.com",
        "country_code": "+91",
        "phone": 2147483647,
        "profile_pic": "",
        "type": 0,
        "status": 1,
        "reset_token": "",
        "verify_token": "$2y$10$YXCZ1yteimLatQnAszJTi.HOGDZrr9xjKJtIDNs3uagX3elFUlC.2",
        "created_at": "2019-05-07 07:53:29",
        "updated_at": "2019-05-08 12:57:45",
        "deleted_at": null
    , 
        "id": 2,
        "full_name": "xyz",
        "email": "xyz@gm.com",
        "country_code": "+91",
        "phone": 2147483647,
        "profile_pic": "",
        "type": 0,
        "status": 1,
        "reset_token": null,
        "verify_token": "$2y$10$Dtk.BdqBgHFyGcpj9bHyI.JRPJlc90Qmhxx0Imm0Mzzd3x6QchDMi",
        "created_at": "2019-05-07 08:34:39",
        "updated_at": "2019-05-07 08:34:39",
        "deleted_at": null
    , 
        "id": 3,
        "full_name": "abc",
        "email": "abc@gmail.com",
        "country_code": "091",
        "phone": 123456,
        "profile_pic": "",
        "type": 0,
        "status": 1,
        "reset_token": "$2y$10$mT9MqON6gMre0rKtoK0ON.VApZYBZP0PY55uM017Cz74E69qBILjm",
        "verify_token": "$2y$10$HMBteSyYTKZ3XgYviUdNORKOw1Bpan5m0UcqIyx3dZrYUsNajou",
        "created_at": "2019-05-07 08:47:29",
        "updated_at": "2019-05-17 05:55:00",
        "deleted_at": null
    

]

现在我希望 Firebase 数据看起来像这样

firebasedemo
    .
    + Users
       .
       . . name:"abc"

我在 Api call For 循环中写下这一行 Rootref= FirebaseDatabase.getInstance().getReference(); Rootref.child("Users").child("name").setValue(name);

但我在 firebase 中只获得了一条记录,而不是全部

任何帮助将不胜感激

【问题讨论】:

有什么问题? Rootref= FirebaseDatabase.getInstance().getReference(); Rootref.child("Users").child("name").setValue(name);这个说法对吗?因为我在 firebase 中只获得了一条记录。 name 是什么,也将您的 Firebase 规则更改为 true 已经这样做了。 name 指 api 响应中的 full_name 字段 制作如下内容: Rootref.child("Users").child(user.getName()).setValue(name);如果您在 child.("name") 上设置值,您将每次都覆盖此值。 “名称”应该是唯一的。 【参考方案1】:

尝试以下方法:

DatabaseReference rootref = FirebaseDatabase.getInstance().getReference(); 
rootref.child("Users").push().setValue(name);

来自docs:

public DatabaseReference push ()

创建对自动生成的子位置的引用。子密钥在客户端生成,并包含服务器时间的估计以用于排序目的。在单个客户端上生成的位置将按照它们创建的顺序进行排序,并且将在所有客户端中大致按顺序进行排序。

【讨论】:

您好,我将此语句放在 API 调用的 for 循环中。所以每次执行for循环时都会添加数据。你能指导我如何检查我的数据是否存在。我正在关注这个***.com/a/41646772/9465933,但它没有发生。 @彼得哈达德 @jeetdeveloper 请在另一个问题中询问它,提供您正在使用的代码的 sn-p 并在此处@我,以便我可以检查您的问题

以上是关于将来自 Api 响应的数据添加到 Android 中的 Firebase 数据库中的主要内容,如果未能解决你的问题,请参考以下文章

将json响应添加到flutter中的列表

如何将JSON数据添加到HTML AWS lambda响应主体?

将来自 Json 响应的 HTML 标记渲染到模板文字

ReactJs中来自API响应的表呈现问题

保存前将节点添加到XML

在节点中创建 REST API 时,如何将来自对外部网站的请求的 http 响应流式传输到原始 api 调用?