我试图找到如何从Firebase中写入/读取数组的方法,最终得到了这个。当我写的时候我会做:
String RestaurantIDs = "";
for(String RestaurantID : category.getRestaurantIDs()) { RestaurantIDs += RestaurantID + ","; }
DataToSave.put(CategoryFireBase.RestaurantIDs, "[" + RestaurantIDs + "]");
当我阅读时,我会这样做:
ArrayList<String> restaurantIDs = new ArrayList<>();
String[] Temp_restaurantIDs = document.get(CategoryFireBase.RestaurantIDs).toString().replace("[","").replace("]","").split(",");
for (String value : Temp_restaurantIDs){restaurantIDs.add(value);}
我对此有两个问题。
- 我可以将它保存为长字符串而不是数组吗?
没什么错,但是使用数组更方便。例如,如果数据库中有一个餐厅ID数组,则在进行get()
调用时,可以直接将这些数组作为列表获取,而无需拆分该长字符串。
- 如果有一种方法可以将数组读写为实际数组,那么这会更好吗?
更好,因为您可以使用特殊方法来更新或删除数组中的元素,如官方文档中所述: