小编gia*_*nni的帖子

放置firebase.auth()的位置.onAuthStateChanged()

我正在使用react和redux实现基本的firebase身份验证.我根据此链接上的react-router示例创建了受保护的路由,到目前为止一切正常.

现在,我从我的auth reducer获取用户身份验证时设置的用户的loggedIn状态,但我希望在页面刷新后使用onAuthStateChanged()保持loggedIn状态.

我应该在哪里放置onAuthStateChanged()函数?有没有最好的做法来使用它?

我的代码供以下参考:

App.js

<PrivateRoute path="/dashboard" component={Dashboard} />
<Route path="/login" component={Login} />
Run Code Online (Sandbox Code Playgroud)

ProtectedRoute.js

const PrivateRoute = ({ component: Component, ...rest }) => {
const { loggedIn } = rest;
return (
    <Route {...rest} render={props => (
      loggedIn ? (<Component {...props} />) : (
        <Redirect to={{
          pathname: '/login',
          state: { from: props.location }
        }} />
      )
    )} />
  )
}

function mapStateToProps({auth}){
  return {
    loggedIn: auth.loggedIn
  }
}
export default connect(mapStateToProps)(PrivateRoute);
Run Code Online (Sandbox Code Playgroud)

actions_auth.js

export const loginUser = ({ …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs react-router firebase-authentication react-redux

9
推荐指数
1
解决办法
3900
查看次数

在哪里调用 Sentry.configureScope?

我在 CRA 反应应用程序中使用哨兵浏览器。我创建了一个错误边界组件,并使用它来捕获错误。

到目前为止一切顺利,我发现了错误并成功将其记录到哨兵。

当我想传递用户信息或设置标签时,问题就出现了;这些信息不会被传递,除非我将它设置在我的索引文件中(但这样我无权访问商店,因此无法访问当前用户信息)。

那么,我应该在哪里调用 Sentry.configureScope() 来设置这些信息?

编辑: 我意识到 sentry.configureScope() 实际上在我的记录器函数中工作正常。问题是我试图用 ErrorBoundary 包装 App,除非在启动时错误已经存在,否则它不会被引导。

现在,如果我想保持基本粒度,如何避免将每个组件都包装在 ErrorBoundary 中?

我的代码如下:

指数:

Sentry.init({
  dsn: "https://xxxxx.yyyyyyyyy",
  environment: process.env.NODE_ENV,
  release: '0.1.0'
})

// HERE IT WOULD WORK --------- BUT I HAVE NO STORE ACCESS
/* Sentry.configureScope(scope => {
     scope.setExtra('battery', 0.7);
     scope.setTag('user_access', 'admin');
     scope.setUser({ id: '555' });
}); */

ReactDOM.render(
<Provider store={store}>
    <LocalizeProvider store={store}>
        <PersistGate loading={<Spinner />} persistor={persistor}>
            <ErrorBoundary>
                <App />
            </ErrorBoundary>
        </PersistGate>
    </LocalizeProvider>
</Provider>,
document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)

错误边界.JS

import * as React from 'react'
import * …
Run Code Online (Sandbox Code Playgroud)

logging sentry reactjs create-react-app react-16

7
推荐指数
1
解决办法
5216
查看次数

AWS S3 存储桶名称已存在

我知道以前有人问过这个问题,但答复并没有真正帮助我的案子。我正在尝试在 S3 中创建一个存储桶,但我总是收到“存储桶名称已存在”错误。我尝试了任何可能的组合,但没有运气,格式也符合文档。

知道我做错了什么吗?

谢谢

在此处输入图片说明

amazon-s3 amazon-web-services

6
推荐指数
2
解决办法
4722
查看次数

如何验证firebase用户当前密码

我正在创建一个表单,在 react-redux 中更改用户密码。我想知道如何验证用户当前密码以更改为新密码。在我的表单中,我有 2 个字段:旧密码,新密码。

这是我的行动:

const { currentUser } = auth
currentUser.updatePassword(newPassword)
.then(
  success => {
    dispatch({
      type: CHANGE_USER_PASSWORD_SUCCESS,
      payload: currentUser
    })
  },
  error => {
    dispatch({
      type: CHANGE_USER_PASSWORD_FAIL,
      error: error.message
    })
  }
)
Run Code Online (Sandbox Code Playgroud)

我想知道,如何在 firebase 中验证旧密码?我应该使用 signInWithEmailAndPassword() 吗?或者,是否有一个功能可以验证当前密码而无需再次调用 signIn,因为我的用户已经登录?谢谢

javascript firebase reactjs firebase-authentication react-redux

2
推荐指数
1
解决办法
1454
查看次数