我正在使用Firebase Recycler Adapter(Firebase UI库)来填充Recycler View.我想在条件上隐藏项目(行).我有一个包含回收者视图的LinearLayout.
我在populateViewHolder()
循环器视图适配器的方法中将线性布局可见性设置为Gone .
@Override
protected void populateViewHolder(UsersViewHolder viewHolder, User user, int position) {
if (user.getUserEmail().equals(Utils.decodeEmail(userEmail))) {
viewHolder.llMain.setVisibility(View.GONE);
return;
}
viewHolder.tvUserEmail.setText(user.getUserEmail());
}
Run Code Online (Sandbox Code Playgroud)
它隐藏了LinearLayout,但行仍留有空白.
是否有任何方法我应该覆盖以克服这个或有什么方法来实现结果?
android firebase android-recyclerview firebase-realtime-database firebaseui
我在我的日志猫中收到此错误
Error:Failed to resolve: com.twitter.sdk.android:twitter:2.3.0
Run Code Online (Sandbox Code Playgroud)
当我尝试添加此依赖项时:
compile 'com.firebaseui:firebase-ui:1.1.1'
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我,我不知道我做错了什么.这是我从中获取依赖关系的链接:https://github.com/firebase/FirebaseUI-Android.在旁注中,我没有在我的应用程序中使用Twitter登录或与Twitter进行任何类型的交互,因此我不确定为什么在放置该依赖项后同步我的gradle时出现该错误.
当我尝试在模拟器上运行我的应用程序时,我收到此错误.
我做了什么:
事实上,当我在真实设备上运行应用程序时,它运行完美,我可以登录.
This app is not authorized to use Firebase Authentication. Please verify that the correct package name and SHA-1 are configured in the Firebase Console.
com.google.firebase.auth.FirebaseAuthException: This app is not authorized to use Firebase Authentication. Please verifythat the correct package name and SHA-1 are configured in the Firebase Console. [ App validation failed. Is app running on a physical device? ]
at com.google.android.gms.internal.jz.zzK(Unknown Source:239)
at com.google.android.gms.internal.kp.zza(Unknown Source:2)
at com.google.android.gms.internal.kq.run(Unknown Source:37)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用firebaseUI将firebase添加到我的应用程序.作为本细则说,我已经使用了相应的GMS:播放服务(11.0.4)与firebaseUI版本(2.2.0) 当我在同步的gradle文件,我收到以下错误:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0) from [com.android.support:support-v13:26.0.0] AndroidManifest.xml:28:13-35
is also present at [com.android.support:customtabs:25.4.0] AndroidManifest.xml:25:13-35 value=(25.4.0).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:26:9-28:38 to override.
Run Code Online (Sandbox Code Playgroud)
这是我的gradle文件:
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.test.test"
minSdkVersion 21
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:26.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:support-v13:26.0.0'
compile 'com.android.support:design:26.0.0'
compile 'com.android.support:recyclerview-v7:26.0.0'
//firebase
compile 'com.google.android.gms:play-services-auth:11.0.4'
compile 'com.google.firebase:firebase-core:11.0.4' …
Run Code Online (Sandbox Code Playgroud) 我尝试在Firebase连接的Android应用中实施Google登录.当我运行应用程序并按Google登录按钮时 - 没有任何反应.我在onActivityResult中收到此错误: Status {statusCode = DEVELOPER_ERROR,resolution = null}.
我的代码看起来像这样:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_GOOGLE_LOGIN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()){
GoogleSignInAccount account = result.getSignInAccount();
String emailAddres = account.getEmail();
getGoogleQAuthToken(emailAddres);
}
}
}
private void getGoogleQAuthToken(final String emailAddres){
AsyncTask<Void,Void,String> task = new AsyncTask<Void, Void, String>() {
String errorMessage = null;
@Override
protected String doInBackground(Void... params) {
String token = null;
try {
String scope = "oauth2:profile email";
token = GoogleAuthUtil.getToken(MainActivity.this, …
Run Code Online (Sandbox Code Playgroud) android google-authentication firebase firebase-authentication firebaseui
我FirebaseRecyclerAdapter
用来显示聊天消息.
private void attachRecyclerViewAdapter() {
lastFifty = mChatRef.limitToLast(50).;
mRecyclerViewAdapter = new FirebaseRecyclerAdapter<Chat, ChatHolder>(
Chat.class, R.layout.message, ChatHolder.class, lastFifty) {
@Override
public void populateViewHolder(ChatHolder chatView, Chat chat, int position) {
chatView.setName(chat.getName());
chatView.setText(chat.getText());
chatView.setTimeLocation(chat.getTime());
FirebaseUser currentUser = mAuth.getCurrentUser();
if (currentUser != null && chat.getUid().equals(currentUser.getUid())) {
chatView.setIsSender(true);
} else {
chatView.setIsSender(false);
}
}
};
Run Code Online (Sandbox Code Playgroud)
我有一个包含特定用户列表的列表.我想应用过滤器只查看来自这些特定用户的邮件.我该怎么办 ?
我正在尝试在我的Android应用程序中编写删除用户方法,但每次执行它时都会遇到一些问题.当用户按下活动上的删除帐户按钮时,将执行此方法.我的应用与FirebaseUI Auth配合使用.
这是方法:
private void deleteAccount() {
Log.d(TAG, "ingreso a deleteAccount");
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
final FirebaseUser currentUser = firebaseAuth.getCurrentUser();
currentUser.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG,"OK! Works fine!");
startActivity(new Intent(Main3WelcomeActivity.this, Main3Activity.class));
finish();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG,"Ocurrio un error durante la eliminación del usuario", e);
}
});
}
Run Code Online (Sandbox Code Playgroud)
1)当我执行该功能时,屏幕上会出现一个Smart Lock消息,用户再次登录.以下是此消息的屏幕截图.
2)在其他情况下,当用户登录很长时间时,该函数抛出一个Exception,如下所示:
06-30 00:01:26.672 11152-11152/com.devpicon.android.firebasesamples E/Main3WelcomeActivity: Ocurrio un error durante la …
Run Code Online (Sandbox Code Playgroud) android firebase-authentication firebase-realtime-database firebaseui
我正在使用FirebaseUI-Authentication.使用电子邮件或Google帐户登录是成功的,但使用Facebook登录无效.onActivityResult()
在AuthUI活动开始并尝试使用Facebook登录后未调用.登录后尝试将应用程序停留在加载窗口.logcat输出FirebaseApp日志:
通知背景状态更改侦听器.
在Facebook应用程序仪表板上,我设置了有效的OAuth重定向URI,正如firebase指南所述,我将应用程序设置为公共(如果它是公共的还是处于开发状态,这是否重要?).在Firebase控制台中,我启用了Facebook登录并设置了App ID和App secret.
这是一个视频录制,显示点击登录活动后登录Facebook后发生的情况.
为什么不onActivityResult()
叫?
主要活动:
/**
* Use this method to start the FirebaseUI sign in activity.
*/
public void switchToSignIn() {
this.activity.startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setProviders(
AuthUI.EMAIL_PROVIDER,
AuthUI.GOOGLE_PROVIDER,
AuthUI.FACEBOOK_PROVIDER)
.build(), RC_SIGN_IN);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RC_SIGN_IN) {
if (resultCode == this.activity.RESULT_OK) {
// user is signed in!
Log.d(Constants.TAG_LoginHandler, …
Run Code Online (Sandbox Code Playgroud) android facebook-authentication firebase firebase-authentication firebaseui
我正在使用vanilla JavaScript编写Firebase应用程序.我正在使用Firebase身份验证和FirebaseUI for Web.我正在使用Firebase Cloud Functions来实现一个服务器,该服务器接收我的页面路由请求并返回呈现的HTML.我正在努力寻找在客户端使用经过身份验证的ID令牌来访问我的Firebase云功能所服务的受保护路由的最佳做法.
我相信我理解基本流程:用户登录,这意味着ID令牌被发送到客户端,在onAuthStateChanged
回调中接收它,然后插入Authorization
任何具有正确前缀的新HTTP请求的字段,然后检查当用户尝试访问受保护的路由时由服务器.
我不明白我应该对onAuthStateChanged
回调中的ID令牌做什么,或者我应该如何修改我的客户端JavaScript以在必要时修改请求头.
我正在使用Firebase云功能来处理路由请求.这是我的functions/index.js
,它导出app
所有请求被重定向到的方法以及检查ID标记的位置:
const functions = require('firebase-functions')
const admin = require('firebase-admin')
const express = require('express')
const cookieParser = require('cookie-parser')
const cors = require('cors')
const app = express()
app.use(cors({ origin: true }))
app.use(cookieParser())
admin.initializeApp(functions.config().firebase)
const firebaseAuthenticate = (req, res, next) => {
console.log('Check if request is authorized with Firebase ID token')
if ((!req.headers.authorization || !req.headers.authorization.startsWith('Bearer ')) &&
!req.cookies.__session) {
console.error('No Firebase ID token was passed …
Run Code Online (Sandbox Code Playgroud) javascript security firebase firebase-authentication firebaseui
尝试使用FireStore和Google身份验证创建一个简单的应用程序。gradle有问题:
在项目“应用”中,已解析的Google Play服务库依赖项依赖于另一个版本(例如“ [15.0。1]”),但尚未解析为该版本。库所表现出的行为将是未知的。
依赖项失败:com.google.android.gms:play-services-flags:15.0.1-> com.google.android.gms:play-services-basement @ [15.0.1],但是play-services-basement版本是16.0.1。
以下依赖关系是直接或具有传递性依赖关系的项目依赖关系,会导致问题解决。-专案「app」取决于com.google.firebase:firebase-firestore@17.1.5-专案「app」取决于com.firebaseui:firebase-ui-auth@4.2.0
有关扩展的调试信息,请从命令行使用./gradlew --info:app:assembleDebug执行Gradle,以查看工件的dep endency路径。此错误消息来自google-services Gradle插件,在https://github.com/google/play-services-plugins上报告问题,并通过在您的build.gradle文件中添加“ googleServices {disableVersionCheck = false}”来禁用该错误消息。
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "myapp.com"
minSdkVersion 19
targetSdkVersion 27
versionCode 11
versionName "1.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-firestore:17.1.5'
implementation 'com.firebaseui:firebase-ui-auth:4.2.0'
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin
Run Code Online (Sandbox Code Playgroud)
项目gradle: …