Firebase数据提供者+自定义数据提供者--React管理员。

问题描述 投票:0回答:1

我拼命地上网搜索和stackoverflowing了几个小时 "如何用React-admin使用多个数据提供者"。我找到了很多东西,期望得到我真正需要的东西。如何在React admin v3中使用动态firebase数据提供者+自定义数据提供者?我使用 反应-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道具中直接使用firebaseProvider的时候,帖子列表就可以了。这到底是怎么回事?谢谢你

javascript reactjs firebase react-admin dataprovider
1个回答
1
投票

哦,来吧,康纳! 为什么它不工作的原因是如此简单!你只是返回firebaseProject的数据。你只是返回firebaseProvider,而不是调用它并返回结果! 所以,试试这段代码,一定会很轻松的工作!

 const superDataProvider = (type, resource, params) => {
  if (resource === 'users') {
    return new Promise(resolve => resolve(usersMockData));
  }

  return firebaseProvider(type, resource, params);
};
© www.soinside.com 2019 - 2024. All rights reserved.