Firebase 数据提供者 + 自定义数据提供者 - React 管理员
Firebase Data Provider + custom data provider - React admin
我拼命地谷歌搜索和计算数小时 "How to use multiple data providers with React-admin"。我发现很多东西都是我真正需要的。如何在 React admin v3 中动态使用 firebase 数据提供者 + 自定义数据提供者?我对帖子使用 react-admin-firebase,还需要对用户列表使用我们的自定义 api。
这是我尝试过的许多不同方式(if-else、switch 语句等):
For Example:
import { dataProvider as firebaseProvider } from "./firebase/firebase.utils";
import { usersMockData } from './api/mockData';
const superDataProvider = (type, resource, params) => {
if (resource === 'users') {
return new Promise(resolve => resolve(usersMockData));
}
return firebaseProvider;
};
<Admin
title="My site"
authProvider={authProvider}
dataProvider={superDataProvider}
loginPage={LoginPage}
>
<Resource
name="posts"
options={{ label: "Posts" }}
list={PostsList}
edit={PostsEdit}
show={PostsShow}
create={PostsCreate}
icon={PostsIcon}
/>
<Resource
name="users"
options={{ label: "Users" }}
list={usersList}
show={usersShow}
icon={usersIcon}
/>
</Admin>
// Output error when I try to reach page with posts from firebase: The dataProvider threw an error. It should return a rejected Promise instead.
实际上,加载了用户,但没有加载来自 firebase 的帖子。有趣的是,当我在 Admin prop 中直接使用 firebaseProvider 时,发布列表的工作。什么鬼?非常感谢
哦,加油,康纳!它不起作用的原因很简单!您只是 returning firebaseProvider,而不是调用它和 return 结果!所以试试这个代码,它肯定会很容易工作!
const superDataProvider = (type, resource, params) => {
if (resource === 'users') {
return new Promise(resolve => resolve(usersMockData));
}
return firebaseProvider(type, resource, params);
};
我拼命地谷歌搜索和计算数小时 "How to use multiple data providers with React-admin"。我发现很多东西都是我真正需要的。如何在 React admin v3 中动态使用 firebase 数据提供者 + 自定义数据提供者?我对帖子使用 react-admin-firebase,还需要对用户列表使用我们的自定义 api。
这是我尝试过的许多不同方式(if-else、switch 语句等):
For Example:
import { dataProvider as firebaseProvider } from "./firebase/firebase.utils";
import { usersMockData } from './api/mockData';
const superDataProvider = (type, resource, params) => {
if (resource === 'users') {
return new Promise(resolve => resolve(usersMockData));
}
return firebaseProvider;
};
<Admin
title="My site"
authProvider={authProvider}
dataProvider={superDataProvider}
loginPage={LoginPage}
>
<Resource
name="posts"
options={{ label: "Posts" }}
list={PostsList}
edit={PostsEdit}
show={PostsShow}
create={PostsCreate}
icon={PostsIcon}
/>
<Resource
name="users"
options={{ label: "Users" }}
list={usersList}
show={usersShow}
icon={usersIcon}
/>
</Admin>
// Output error when I try to reach page with posts from firebase: The dataProvider threw an error. It should return a rejected Promise instead.
实际上,加载了用户,但没有加载来自 firebase 的帖子。有趣的是,当我在 Admin prop 中直接使用 firebaseProvider 时,发布列表的工作。什么鬼?非常感谢
哦,加油,康纳!它不起作用的原因很简单!您只是 returning firebaseProvider,而不是调用它和 return 结果!所以试试这个代码,它肯定会很容易工作!
const superDataProvider = (type, resource, params) => {
if (resource === 'users') {
return new Promise(resolve => resolve(usersMockData));
}
return firebaseProvider(type, resource, params);
};