【问题标题】:Ionic 1.x + Firebase - unable to deal with arrayIonic 1.x + Firebase - 无法处理数组
【发布时间】:2017-05-27 17:19:17
【问题描述】:

在我的应用程序中,我在用户注册时创建了一个默认数据数组,并以下列方式(使用服务)将其添加到该用户 ID 下:

function addDefaultData(){
      var defCategories = ['','data1',
                            'data2',
                            'data3',
                            'data4'];
        var updates = {};

        updates['/user-data/' + firebase.auth().currentUser.uid + '/' + 'categories'] = defCategories;
        return firebase.database().ref().update(updates);
    }
}

注册后,用户可以更改此数组,一次添加或删除单个项目。我读了here,但这对我没有帮助。这是数据在 firebase db 中的样子:

-appName-fomefirebaseid123
   -user-data
     -userID123687FHGJH4546HGJ
       +5_2017
       -categories
         0: ""
         1: "data1"
         2: "data2"
         3: "data3"
         4: "data4"

如何操作这个数组?删除或添加新项目?

【问题讨论】:

  • 请发布您的代码。
  • 他们的文档中没有关于数组的内容,所以我发布了如何保存数组。

标签: firebase ionic-framework firebase-realtime-database


【解决方案1】:

Firebase 团队认为“阵列是邪恶的”(请参阅​​:https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html)。

在同一篇文章中,他们指出:“Firebase 没有对数组的原生支持。如果您存储一个数组,它实际上会被存储为一个以整数作为键名的‘对象’。”

我已经阅读了上述博客,并相应地调整了与 Firebase 交互的期望和方法。

在您的情况下,如果您想删除类别的索引“0”,您实际上是在删除类别文档的键“0”。

【讨论】:

    猜你喜欢
    • 2017-01-03
    • 2016-12-18
    • 2019-04-14
    • 2017-06-16
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2023-04-02
    • 2018-03-07
    相关资源
    最近更新 更多