[英]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.