标签: firebaseui

1小时后无效的身份验证令牌 - Firebase中的磁盘持久性

我正在使用Firebase UI Auth处理我的应用中的电子邮件登录,并启用了磁盘持久性,以便可以脱机访问数据.但是在应用程序中登录了一个小时之后,我在logcat中收到了这个警告.

W/PersistentConnection: pc_0 - Auth token revoked: expired_token (Auth token is expired.)
W/PersistentConnection: pc_0 - Authentication failed: invalid_token (Invalid claim 'kid' in auth header.)
W/PersistentConnection: pc_0 - Authentication failed: invalid_token (Invalid claim 'kid' in auth header.)
... repeatedly
... and sometimes
W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
Run Code Online (Sandbox Code Playgroud)

当我收到此消息时,应用程序无法执行任何firebase保存/检索新的未缓存数据操作,除非我签出/清除数据然后再次登录.然后问题在登录后大约一个小时后再次发生.我已经按照此令牌刷新故障排除指南(将我的调试和生产密钥SHA1添加到Firebase和Google API控制台)并且它无法解决此问题.我google-services.json在我的项目中使用了Firebase控制台中的最新版本.

我也在使用最新的Firebase SDK和Play服务库

compile 'com.google.android.gms:play-services-auth:9.2.1'
compile 'com.google.firebase:firebase-core:9.2.1'
compile 'com.google.firebase:firebase-database:9.2.1'
compile 'com.google.firebase:firebase-auth:9.2.1'
compile 'com.firebaseui:firebase-ui-auth:0.4.3'
Run Code Online (Sandbox Code Playgroud)

我在Application课堂上启用了持久性.

public class Application extends android.app.Application …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication firebase-realtime-database firebaseui

6
推荐指数
1
解决办法
792
查看次数

FirebaseUI和Firebase有什么区别?

所以我是Firebase的新手,我正在试图弄清楚FirebaseUI和Firebase是否是同一个东西.我已经浏览了firebase.google.com上的教程,但是我注意到一些在线视频使用的是FirebaseUI.

FirebaseUI和常规Firebase有什么区别?当我编程时,我是否同时使用FirebaseUI和Firebase?

我希望将它用于Firebase Web和Firebase Android.

提前致谢!

android firebase firebaseui

6
推荐指数
1
解决办法
1088
查看次数

无法使用 FirebaseUI 隐藏授权活动的标题栏

我尝试使用以下样式

<style name= "AuthStyle">
<item name="android:windowBackground">@drawable/culture</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后我在这里应用了上述样式:

startActivityForResult(AuthUI.getInstance()
                .createSignInIntentBuilder()
                .setProviders(AuthUI.EMAIL_PROVIDER,
                              AuthUI.FACEBOOK_PROVIDER,
                              AuthUI.GOOGLE_PROVIDER)
                .setTheme(R.style.AuthStyle)
                .build()
                ,1);
Run Code Online (Sandbox Code Playgroud)

但是,标题栏仍在显示。任何有关如何删除/隐藏它的建议将不胜感激

android firebase-authentication firebaseui

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

如何更新firebase回收器适配器的查询引用?

我有一个RecyclerView必然的FirebaseRecyclerAdapter.我需要根据用户使用a设置的值更新显示的数据spinner.

像这样的东西:

FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference ref = db.getReference("data");
Query query = ref.orderByChild("index").startAt(loadPreferences()).endAt(loadPreferences());
final Adapter fireAdapter = new Adapter(Model.class, R.layout.model_card, Adapter.FireViewHolder.class, query);

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            String selectedIndex = String.valueOf(adapterView.getItemAtPosition(i));
            savePreferences(selectedIndex);
            Query newQuery = ref.orderByChild("index").startAt(selectedIndex).endAt(selectedIndex));
            fireAdapter.updateQuery(newQuery); //This is what i'm looking for
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

我的适配器:

class Adapter extends FirebaseRecyclerAdapter<Model, Adapter.FireViewHolder> {

Adapter(Class<Model> modelClass, int modelLayout, …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database firebaseui

6
推荐指数
1
解决办法
1577
查看次数

Firebase 身份验证 UI 如何处理重新身份验证?

我正在为我的 Swift iOS 应用程序使用 Firebase Auth。Google 建议使用 Firebase Auth UI 作为“插入式”身份验证系统,但它仅处理初始登录。我现在正致力于允许用户更改配置文件,例如电子邮件和密码。

进行这些更改的文档在多个地方提到某些更改要求用户最近登录(请参阅https://firebase.google.com/docs/auth/ios/manage-users#get_the_currently_signed-in_user):

某些安全敏感操作(例如删除帐户、设置主电子邮件地址和更改密码)要求用户最近登录。如果您执行这些操作之一,而用户登录时间过长,则操作因 FIRAuthErrorCodeCredentialTooOld 错误而失败。

首先,FIRAuthErrorCodeCredentialTooOldAPI 中的任何地方似乎都没有错误。

其次,文档建议使用reauthenticate(with:)此代码示例来解决此问题:

let user = FIRAuth.auth()?.currentUser
var credential: FIRAuthCredential

// Prompt the user to re-provide their sign-in credentials

user?.reauthenticate(with: credential) { error in
  if let error = error {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,因为我使用了 Firebase Auth UI,所以我没有用于获取用户凭据的自定义 UI。

我目前的想法是,我可以通过在发生此错误时提供用于登录的相同 Firebase 身份验证 UI 来重新进行身份验证。但是,我不知道这是否是执行此操作的认可方式,或者它是否会起作用,或者将来是否会继续起作用。我检查了 Firebase Auth UI 代码库,没有reauthenticate()任何地方可以调用。文档在出现此错误的情况下专门调用此方法做了大量工作,所以我很困惑。

如果我需要构建一个完整的 …

ios firebase swift firebase-authentication firebaseui

6
推荐指数
1
解决办法
1913
查看次数

在为firebase-ui-auth添加依赖项时出错

由于需要根据Firebase/Play服务版本使用FirebaseUI版本,因此我添加:

compile 'com.google.firebase:firebase-core:10.2.1'
compile 'com.google.firebase:firebase-auth:10.2.1'
compile 'com.firebaseui:firebase-ui-auth:1.2.0'
Run Code Online (Sandbox Code Playgroud)

并且该应用程序唯一可用的播放服务是:

 compile 'com.google.android.gms:play-services-auth:10.2.1'
Run Code Online (Sandbox Code Playgroud)

但Firebase UI库(1.2.0)依赖于各种播放服务库的10.2.0版本:https://github.com/firebase/FirebaseUI-Android.

这些是所有依赖项的最新版本,但在Studio中无法解决.

需要一些帮助!提前致谢 :)

android firebase firebaseui

6
推荐指数
1
解决办法
1348
查看次数

firebaseui signInSuccess 在回调中重定向

使用 ReactJS Web 和 FirebaseUI Auth。

我正在尝试创建一个包含登录用户的 uid 的 signInSuccessUrl: /users/${userId}

我的假设是这需要在回调中定义,但我似乎无法使其工作。

目前,它默认重定向到signInSuccessUrl,而不是使用回调...

任何帮助深表感谢!

const uiConfig = {

  signInFlow: 'popup',

  signInSuccessUrl: '/',

  signInOptions: [
    firebase.auth.GoogleAuthProvider.PROVIDER_ID,
    firebase.auth.FacebookAuthProvider.PROVIDER_ID,
    { provider: firebase.auth.EmailAuthProvider.PROVIDER_ID,
      requireDisplayName: true
    },
  ],

  // the area where i assume something is going wrong...
  callbacks: {
    signInSuccess: function(currentUser, credential, redirectUrl) {
      const userId = currentUser.uid;
      redirectUrl = `/users/${userId}`;
      return false
    },
  }
};
Run Code Online (Sandbox Code Playgroud)

firebase reactjs firebase-authentication firebaseui

6
推荐指数
1
解决办法
7552
查看次数

FirebaseUI 取消按钮点击回调

我正在尝试实施 Firebase 身份验证。使用提供的用户界面,

在此处输入图片说明

我不知道单击“取消”按钮时调用了什么方法。它似乎没有记录,https://github.com/firebase/firebaseui-web

firebase firebaseui

6
推荐指数
1
解决办法
167
查看次数

Firebase UI 电子邮件链接登录意图额外为空

以下 3 个函数用于设置电子邮件和其他身份验证检查(按顺序调用)

    private void buildSignInIntentBuilder() {

        ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder()
                        .setAndroidPackageName(getString(R.string.packageName), true, null)
                        .setHandleCodeInApp(true)
                        .setUrl(getString(R.string.dynamic_link_url))
                        .build();

        List<AuthUI.IdpConfig> providers = Arrays.asList(
                new AuthUI.IdpConfig.EmailBuilder()
                        .enableEmailLinkSignIn()
                        .setActionCodeSettings(actionCodeSettings)
                        .build(),
                // new AuthUI.IdpConfig.EmailBuilder().setRequireName(false).build(),
                new AuthUI.IdpConfig.PhoneBuilder()
                        .build(),
                new AuthUI.IdpConfig.GoogleBuilder()
                        .build(),
                new AuthUI.IdpConfig.FacebookBuilder()
                        .build());

        signInIntentBuilder = AuthUI.getInstance()
                .createSignInIntentBuilder()
                .setIsSmartLockEnabled(false)
                .setAvailableProviders(providers)
                .setLogo(R.drawable.icon_forget_me_not_1);
    }

    private void catchEmailLinkSignIn() {
        Log.d(TAG, "Intent: " + getIntent().getExtras());
        if (AuthUI.canHandleIntent(getIntent())) {
            if (getIntent().getExtras() == null) {
                return;
            }

            String link = getIntent().getExtras().getString(ExtraConstants.EMAIL_LINK_SIGN_IN);
            Log.d(TAG, "link: " + link);
            if (link != null) {
                signInIntentBuilder.setEmailLink(link); …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-authentication firebaseui

6
推荐指数
1
解决办法
205
查看次数

使用 Firebase 保护路由

我在 Next.js 应用程序中使用 Firebase 进行用户身份验证。我想保护客户端的用户。我使用 firebase firebaseui react-firebaseUI 来实现 Google Auth。如何保护客户端本身的路由

  const uiConfig = {
    signInFlow: "popup",
    signInSuccessUrl: "/dashboard",
    signInOptions: [firebase.auth.GoogleAuthProvider.PROVIDER_ID],
  }
Run Code Online (Sandbox Code Playgroud)

我想保护仪表板路线。提前致谢 :)

node.js reactjs firebase-authentication firebaseui next.js

6
推荐指数
1
解决办法
4565
查看次数