Firebase数据库写入操作会在同时写入100个数据时冻结应用程序

时间:2017-06-05 08:18:24

标签: android firebase firebase-realtime-database

当用户第一次打开应用时,我需要向Firebase数据库写入100条记录,但Firebase写入操作会完全冻结应用程序。

以下是产生问题的方法,我在片段中运行此方法,在另一方运行此方法时切换片段只是冻结应用程序

    private void getContactsAndWrite() {
Cursor phones = getActivity().getContentResolver().query(
    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext()) {
  String name = phones.getString(phones.getColumnIndex(
      ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
  String phoneNumber = phones.getString(phones.getColumnIndex(
      ContactsContract.CommonDataKinds.Phone.NUMBER));
  String key = FirebaseUtil.getContactsRef().push().getKey();
  Map<String, Object> contact = new HashMap<>();
  contact.put("name", name);
  contact.put("phoneNumber", phoneNumber);
  FirebaseUtil.getContactsRef().child(key).setValue(contact);
}
phones.close();

}

评论此方法时,应用程序不会冻结

FirebaseUtil.getContactsRef().child(key).setValue(contact);

同样的冻结问题也显示在快速滚动显示在RecyclerView中的这些联系人时,在其适配器中我有代码将联系信息写入firebase数据库(如果在firebase数据库中找不到它)

如何解决此问题?

0 个答案:

没有答案