标签: 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
查看次数

iOS firebase:未调用FIRAuthUIDelegate.authUI

我试图从AppDelegate.swift启动谷歌登录,然后在登录成功后启动我的应用程序的主屏幕.

在此输入图像描述

我能够

  1. 显示google登录按钮,如上所示

  2. 用户被发送到谷歌登录

  3. 用户被送回原件(步骤1)

在第3步之后.我想将用户发送到我应用的主页面.

我的代码如下.我遇到的问题authUI是没有被调用.

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, FIRAuthUIDelegate {
    var window: UIWindow?
    var authUI: FIRAuthUI?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        FIRApp.configure()

        authUI = FIRAuthUI.defaultAuthUI()
        authUI?.delegate = self
        let providers: [FIRAuthProviderUI] = [FIRGoogleAuthUI()]
        authUI?.providers = providers

       // show google login button
       let authViewController = authUI?.authViewController()
       self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
       self.window?.rootViewController = authViewController
       self.window?.makeKeyAndVisible()
       return true
    }

    func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool { …
Run Code Online (Sandbox Code Playgroud)

google-authentication firebase swift firebase-authentication firebaseui

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

Firebase UI Auth Provider iOS Swift示例

我正在开始一个新的iOS Swift应用程序,并希望使用FirebaseUI Auth.以下是在Drop-in authentication solution Firebase Auth下与其进行讨论的文档的链接.适用于Android的FirebaseUI Auth非常简单易用.似乎iOS示例已过时,因为API似乎在版本之间发生了巨大变化.它看起来像3.1版本.

方向也有点裸露:https://github.com/firebase/FirebaseUI-iOS

有人可以帮助我,并为Facebook和谷歌登录提供一个示例AppDelegate和ViewController?

我正在使用Xcode 8.3,Swift 3.

Podfile:

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'Project' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  pod 'FirebaseUI', '~> 3.1'
  pod 'Firebase/Core'
  pod 'Firebase/Database'
  pod 'Firebase/Crash'
  pod 'Firebase/Auth'
  pod 'Firebase/Storage'
  pod 'GoogleSignIn'
  pod 'FBSDKLoginKit'


  target 'ProjectTests' do
    inherit! …
Run Code Online (Sandbox Code Playgroud)

ios firebase firebase-authentication firebaseui podfile

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

与Crashlytics一起运行Firebase-Auth + Firebase-UI

我按照Firebase Auth UI页面上的步骤操作,以便在我的Android应用中使用Firebase auth drop-in解决方案和电话号码验证提供程序.我在我的项目中使用Crashlytics并且我正在从Digits迁移到Firebase,所以这是gradle文件的相关部分:

// firebase dependencies
compile 'com.google.firebase:firebase-auth:11.0.1'
compile 'com.firebaseui:firebase-ui-auth:2.0.1'
compile 'com.firebase:digitsmigrationhelpers:0.1.1'
compile 'com.google.android.gms:play-services-auth:11.0.1'

// crashlytics
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
    transitive = true;
}

// digits (to be removed after migration is complete)
compile('com.digits.sdk.android:digits:2.0.2@aar') {
    transitive = true;
}
Run Code Online (Sandbox Code Playgroud)

这就是我初始化Fabric的方式:

if (Constants.DEBUG)
    Fabric.with(context, new TwitterCore(authConfig), new Digits.Builder().withTheme(R.style.CustomDigitsTheme).build());
else
    Fabric.with(context, new TwitterCore(authConfig), new Digits.Builder().withTheme(R.style.CustomDigitsTheme).build(), new Crashlytics());
Run Code Online (Sandbox Code Playgroud)

但是,当Constants.DEBUG为true时,我在gradle同步时收到以下错误(删除Fabric init中的Digits对象对此问题没有任何影响):

Error:Execution failed for task ':app:fabricGenerateResourcesDebug'.
> Crashlytics Developer Tools error.
Run Code Online (Sandbox Code Playgroud)

(这是堆栈跟踪的pastebin)

删除Crashlytics依赖项会暂时解决此问题.是否存在依赖冲突,或者这是一个错误?

在我的项目我只有crashlytics.properties文件中设置与相应的键(不是fabric.properties文件).在将此依赖项添加到我的应用程序的模块gradle文件之前,我没有出现错误.

更新:我之前曾说过删除Crashlytics依赖项解决了这个问题,但它实际上是 …

android firebase crashlytics firebase-authentication firebaseui

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

我在FirebaseRecyclerAdapter类中找不到populateViewHolder方法

我想FirebaseRecyclerAdapter在我的项目中使用 ,我在之前的Project中使用了这段代码

FirebaseRecyclerAdapter<ChatMessage, ChatMessageViewHolder> adapter = new FirebaseRecyclerAdapter<ChatMessage, ChatMessageViewHolder>(ChatMessage.class, android.R.layout.two_line_list_item, ChatMessageViewHolder.class, ref) {
              public void populateViewHolder(ChatMessageViewHolder chatMessageViewHolder, ChatMessage chatMessage, int position) {
                  chatMessageViewHolder.nameText.setText(chatMessage.getName());
                  chatMessageViewHolder.messageText.setText(chatMessage.getMessage());
              }
          };
         recycler.setAdapter(mAdapter);
Run Code Online (Sandbox Code Playgroud)

并且它工作正常但现在它不再起作用了,新版本中是否有任何更新FirebaseUi不能让我现在重用此代码?

我在我的项目中试过这个

 @Override
    protected void onStart() {
        super.onStart();
        FirebaseRecyclerAdapter<BlogModel, BlogListViewHolder> adapter = new FirebaseRecyclerAdapter<BlogModel, BlogListViewHolder>(BlogModel.class, android.R.layout.two_line_list_item, BlogListViewHolder.class, mDatabaseReference) {
            public void populateViewHolder(BlogListViewHolder blogListViewHolder, BlogModel blogModel, int position) {
                blogListViewHolder.postTitle.setText(blogModel.getPostTitle());
                blogListViewHolder.postDesc.setText(blogModel.getPostDesc());

            }
        };
        mBlogList.setAdapter(adapter);
    }
Run Code Online (Sandbox Code Playgroud)

和Android Studio提供错误说你必须实现onCreateViewHolder,onBindViewHolderMethod.

BlogListViewHolder类

public static class BlogListViewHolder extends RecyclerView.ViewHolder {

        ImageView postImage;
        TextView …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database firebaseui

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

提供的身份验证凭据格式不正确或已过期

在我的 Android 应用程序中,我使用 Google 登录通过 Firebase AuthUI 登录。这部分有效。现在我尝试使用 登录,IdToken但我总是收到此错误消息:

com.google.android.gms.tasks.RuntimeExecutionException:com.google.firebase.auth.FirebaseAuthInvalidCredentialsException:提供的身份验证凭据格式错误或已过期。[IdP 响应中的无效 id_token:XXXXXXX...]

这有效并在我的 Firebase 项目中成功登录:

@OnClick(R.id.sign_in)
public void signIn() {
    startActivityForResult(
            AuthUI.getInstance().createSignInIntentBuilder()
                    .setTheme(getSelectedTheme())
                    .setLogo(getSelectedLogo())
                    .setAvailableProviders(getSelectedProviders())
                    .setTosAndPrivacyPolicyUrls(getSelectedTosUrl(),getSelectedPrivacyPolicyUrl())
                    .setIsSmartLockEnabled(true,
                            true)
                    .build(),
            RC_SIGN_IN);
}
Run Code Online (Sandbox Code Playgroud)

但是尝试使用signInWithCredential从 制作的凭据IdToken给了我上面的错误:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_SIGN_IN) {
        handleSignInResponse(resultCode, data);
        return;
    }

}

@MainThread
private void handleSignInResponse(int resultCode, Intent data) {
    IdpResponse response = IdpResponse.fromResultIntent(data);

    if (resultCode == RESULT_OK) {
        FirebaseAuth …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication firebaseui

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

无法将 java.util.ArrayList 类型的对象转换为模型类型

我正在尝试从 Firebase 将数据加载到 RecycleView。但我得到转换错误。

com.google.firebase.database.DatabaseException: Can't convert object of type java.util.ArrayList to type uk.co.stableweb.kithunugee.model.Hymn
     at com.google.android.gms.internal.zzaix.zzd(Unknown Source)
     at com.google.android.gms.internal.zzaix.zzb(Unknown Source)
     at com.google.android.gms.internal.zzaix.zza(Unknown Source)
     at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
     at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)  
     at com.firebase.ui.database.FirebaseRecyclerAdapter.parseSnapshot(FirebaseRecyclerAdapter.java:147)
     at com.firebase.ui.database.FirebaseRecyclerAdapter.getItem(FirebaseRecyclerAdapter.java:136)
     at com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder(FirebaseRecyclerAdapter.java:176)
     at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471)
     at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504)
     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741)
     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)
     at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994)
     at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390)
     at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353)
     at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)
     at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028)
     at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2625)
     at android.view.View.measure(View.java:18850)
     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
     at android.view.View.measure(View.java:18850)
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5956)
     at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:668)
     at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:90)
     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1192)
     at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:733)
     at android.view.View.measure(View.java:18850)
     at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1075)
     at android.view.View.measure(View.java:18850)
     at …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database firebaseui

5
推荐指数
1
解决办法
3918
查看次数

Bug:Firebase Auth Google 删除 EmailPassword Auth

我已经有使用电子邮件和密码注册的用户。

当用户注销,然后使用具有相同电子邮件地址的google登录时,通过身份验证使用相同的userId登录成功,但电子邮件密码身份验证消失了(信封图标消失了)。有点被替换了

我的登录应用程序有 3 个按钮:

  1. 使用手机登录
  2. 使用电子邮件和密码登录
  3. 使用 Google 登录

假设我有用户 A 已经注册: email: AwesomeA@gmail.com pass: somepassword

然后用户 A 由于某种原因退出,然后使用 Google 再次登录,但使用相同的电子邮件 (awesomeA@gmail.com)

在Console Auth中,userId A与以前相同,但firebase Auth中的图标仅显示google,电子邮件密码Auth的图标消失了

注意:为什么我使用电子邮件密码作为主要身份验证?因为我的应用程序包含付款信息。因此,如果设备被盗,我想使用 firebase 重新身份验证系统确保其安全。所以只要小偷不知道密码,他就无法使用虚拟钱包购买任何东西

firebase firebase-security firebase-authentication firebaseui

5
推荐指数
1
解决办法
1071
查看次数

如何向 Google Firebase 身份验证 UI 添加“我接受条款和隐私政策”复选框?

欧盟的 GDPR 要求我们为用户在注册时接受的“条款”和“隐私政策”设置一个选择复选框。使用 Firebase 身份验证 UI ( FirebaseUI ),默认情况下我不会得到此信息。如何将这样的复选框添加到 FirebaseUI 中?

\n\n

澄清一下:FirebaseUI 提供的 tosUrl 不足以实现此目的。GDPR 要求明确、明确和肯定的同意\xe2\x80\x93 简而言之:他们需要主动选中复选框。我们不能只是通过注册来隐式接受条款。

\n\n

那么,如何获得一个(未选中的)复选框供用户接受条款和隐私政策呢?或者我真的必须构建自定义用户界面吗?我不敢相信 Google 不会支持 GDPR\xe2\x80\xa6

\n

java android firebase firebase-authentication firebaseui

5
推荐指数
1
解决办法
3139
查看次数