我正在开发第一个离线应用程序,我想添加初始订阅,如此处所示https://www.mongodb.com/docs/realm/sdk/react-native/sync-data/flexible-sync/# std-label-react-native-sync-subscribe-to-queryable-fields
这是领域版本10.18.0
所必需的现在在我的 React Native 应用程序中添加它之后,应用程序不断切换回 Fallback,当我删除初始订阅的代码时,应用程序加载良好。不知道有没有我做的不好
import React from "react";
import { ActivityIndicator } from 'react-native'
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import { RootStackParamList } from "./types";
import { Splash, Onboarding, Login } from "../screens";
import BottomNavigator from "./BottomNavigator";
import DrawerNavigator from "./DrawerNavigator";
import { UserProvider } from "@realm/react";
import { realmContext } from "../realm/realm";
import { DEVICE_HEIGHT, DEVICE_WIDTH } from "../constants/sizes";
import { RootState, useAppSelector } from "../redux/store";
const Stack = createNativeStackNavigator<RootStackParamList>();
const { RealmProvider } = realmContext;
const FallBackNavigator = () => {
const { Screen, Navigator } = Stack;
return (
<Navigator
initialRouteName="Splash"
screenOptions={{
headerShown: false,
}}
>
<Screen name="Splash" component={Splash} />
<Screen name="Login" component={Login} />
</Navigator>
);
};
const MainNavigator = () => {
const userData: any = useAppSelector((state: RootState) => state.auth.user)
const { Screen, Navigator } = Stack;
return (
<UserProvider fallback={<FallBackNavigator />}>
<RealmProvider sync={{
flexible: true,
initialSubscriptions: {
update: (subs, realm) => {
subs.add(realm.objects('courses').filtered('admin_id = $0', userData.authID),{
name: 'coursesSubscription',
})
subs.add(realm.objects('coursedetails'),{
name: 'coursesdetailsSubscription',
})
},
},
}}
fallback={() => <ActivityIndicator size={'large'} style={{ position: 'absolute', zIndex: 999, top: DEVICE_HEIGHT * 0.5, left: DEVICE_WIDTH * 0.46 }} />}
>
<Navigator
initialRouteName="Splash"
screenOptions={{
headerShown: false,
}}
>
<Screen name="Splash" component={Splash} />
<Screen name="Onboarding" component={Onboarding} />
<Screen name="DrawerNavigator" component={DrawerNavigator} />
<Screen name="BottomNavigator" component={BottomNavigator} />
</Navigator>
</RealmProvider>
</UserProvider>
);
};
export default MainNavigator;
我也已经将 admin_id 添加到 MongoDB 领域站点的 App services 中的可查询字段。