簡體   English   中英

IOS Firestore 離線訪問

[英]IOS Firestore Offline Access

在我的應用程序和 AppDelegate 中,我有:

import UIKit
import Capacitor
import Firebase
import FirebaseCore
import FirebaseDatabase
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        FirebaseApp.configure()
        Database.database().isPersistenceEnabled = true
        ApplicationDelegate.shared.application(
         application,
         didFinishLaunchingWithOptions: launchOptions
        )
        return true
    }

在此處輸入圖像描述

我也在為應用程序使用 Capacitor。

在我的查詢中,我使用了一些簡單的東西,比如:

const useItemsUser = () => {
  const user = firebase.auth().currentUser;
  const user1 = user.uid;
  const [items, setItems] = useState([]);
  useEffect(() => {
    const unsubscribe = firebase
      .firestore()
      .collection("user")
      .where("id", "==", `${user1}`)
      .onSnapshot(snapshot => {
        const listItemsUsers = snapshot.docs.map(doc => ({
          id: doc.id,
          ...doc.data()
        }));
        setItems(listItemsUsers);
      });
    return () => unsubscribe();
  }, []);
  return items;
};

但是,如果我處於離線狀態,則會返回一個空白響應並顯示以下錯誤:

@firebase/firestore: Firestore (8.10.1): Connection WebChannel transport errored

我假設我的 AppDelegate 是正確的,它與 onSnapshot 有關系嗎? 有人可以提供幫助嗎?

作為此github中提到的解決方法,請嘗試在您的 Firestore 設置中使用experimentalForceLongPolling

firebase.initializeApp(firebaseConfig);
firebase.firestore().settings({ experimentalForceLongPolling: true });

另請檢查以下鏈接以了解類似的實現:

我發現這個github 線程是針對一個類似的問題提出的,該問題仍然未解決。如果您仍然面臨這個問題,您可以關注該問題以進行將來的更新,並在那里添加您的疑慮。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM