我正在使用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
所以我是Firebase的新手,我正在试图弄清楚FirebaseUI和Firebase是否是同一个东西.我已经浏览了firebase.google.com上的教程,但是我注意到一些在线视频使用的是FirebaseUI.
FirebaseUI和常规Firebase有什么区别?当我编程时,我是否同时使用FirebaseUI和Firebase?
我希望将它用于Firebase Web和Firebase Android.
提前致谢!
我试图从AppDelegate.swift启动谷歌登录,然后在登录成功后启动我的应用程序的主屏幕.
我能够
显示google登录按钮,如上所示
用户被发送到谷歌登录
用户被送回原件(步骤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
我正在开始一个新的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) 我按照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
我想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 应用程序中,我使用 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) 我正在尝试从 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) 我已经有使用电子邮件和密码注册的用户。
当用户注销,然后使用具有相同电子邮件地址的google登录时,通过身份验证使用相同的userId登录成功,但电子邮件密码身份验证消失了(信封图标消失了)。有点被替换了
我的登录应用程序有 3 个按钮:
假设我有用户 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
欧盟的 GDPR 要求我们为用户在注册时接受的“条款”和“隐私政策”设置一个选择复选框。使用 Firebase 身份验证 UI ( FirebaseUI ),默认情况下我不会得到此信息。如何将这样的复选框添加到 FirebaseUI 中?
\n\n澄清一下:FirebaseUI 提供的 tosUrl 不足以实现此目的。GDPR 要求明确、明确和肯定的同意\xe2\x80\x93 简而言之:他们需要主动选中复选框。我们不能只是通过注册来隐式接受条款。
\n\n那么,如何获得一个(未选中的)复选框供用户接受条款和隐私政策呢?或者我真的必须构建自定义用户界面吗?我不敢相信 Google 不会支持 GDPR\xe2\x80\xa6
\n