ディスクにキャッシュされているものを使用せずに最新バージョンのユーザーオブジェクトを把握できるように、現在のユーザーを更新してアプリケーションを再起動する必要があります。キーに参照ポインタフィールドを持つPFUserのサブクラスのデータがありません
User.current()?.fetchInBackground(block: { (user, error) in
//simply using a fetchInBackground won't fetch the entire reference field store in
// the user collection. In the case of using PFQuery, we could simply include the key for
// reference field.
})
これらすべての参照フィールドに対して追加のフェッチを実行し、それに対応して現在のユーザーのフィールドを更新する必要がありますか?
注 - 私の例ではSwiftではなくJSを使用しているため、関数名は異なる場合がありますが、同等のものが両方のSDKに確実に存在します。 –
私は対応するデータを取得するためにクエリを使用することができますが、私は1回のパスでそれを行うことはできますか?問題は、PFUserがキャッシュされてディスクに保存されていることです。アプリケーションを起動するたびに、キャッシュ内のキャッシュを使用せずにリモートデータベースから現在のユーザーを更新することが期待されます。通常、fetchIfNeedを使用してレシーバを新しい値に更新します。オブジェクトにポインタフィールドがある場合にどのように処理されるかはわかりません。 –
fetchIfNeededは、自分が行っていると思われることをしません。 fetchIfNeededは、たとえば、オブジェクトBへのポインタを持つオブジェクトAでフェッチを呼び出し、オブジェクトBでfetchIfNeededを呼び出す場合にのみフェッチします。または、新しいPFObjectを作成してIDを手動で設定した場合は、fetchIfNeededを呼び出します。必要に応じてフェッチすると、以前フェッチされたオブジェクトはフェッチされません。オブジェクトがフェッチされるとすぐに、fetchIfNeededがフェッチするかどうかを決定するブール値が反転されます。新しい情報があるときはいつでも取得しません。 –