pKakidashi Wifiオフで8を投稿 image Wifiオン image

  • 自動でクラウド保存されてる
  • そのタイミングで(local save ok)のフラグが消えてる ts
setGlobal({ items: [...global.items, item] });
local_db.items.add(item).then(() => {
  const new_item = { ...item, saved_local: true }
  setGlobal({ items: [...global.items, new_item] });
})
addItemToFirestore(item).then(() => {
  const new_item = { ...item, saved_cloud: true }
  setGlobal({ items: [...global.items, new_item] });
})

ts

  const updateItem = (index: number, diff: { [key: string]: any }) => {
    const global = getGlobal();
    const new_item = { ...global.items[index], ...diff }
    const new_items = [...global.items]
    new_items[index] = new_item;
    setGlobal({ items: new_items });
  }
 
  const index = global.items.length;
  setGlobal({ items: [...global.items, item] });
  local_db.items.add(item).then(() => {
    updateItem(index, { saved_local: true })
  })
  addItemToFirestore(item).then(() => {
    updateItem(index, { saved_cloud: true })
    local_db.items.update(item.created, { saved_cloud: true })
  })
  • クラウド保存されないままリロードされたものはリトライされない
    • リロード時にローカルから復元されたものは即座にリトライ
    • した