假设我有一个RecyclerView
,当它从数据库加载数据时,我想做点什么.我想它是这样的:
recyclerView.setOnUpdateListener(new OnUpdateListener() {
@Override
public void onChanged() {
//I do whatever I want
}
};
Run Code Online (Sandbox Code Playgroud)
我见过的:
我看过这个链接,但问题不太清楚; 答案也没有,因为它没有解释它在做什么.它已经很老了.
我已经看过了,但还没有回答.
为什么?
因为我正在从数据库加载数据,并且我想在加载时显示进度圆,并在数据显示时将其关闭.
注意:我正在使用FirebaseRecyclerAdapter
.
android android-recyclerview firebase-realtime-database firebaseui
是否有任何选项可以使用 AuthUI.getInstance().createSignInIntentBuilder() 设置自定义背景图像?
或任何其他建议来设置此背景图像?
FirebaseUI-Android 版本:0.5.3
我想知道如何在 FirebaseUI 提供的 recyclerview 项目中放置上下文菜单,并且能够在知道长按哪个项目的情况下执行一些操作。因为当我尝试在我的持有者类上使用 onCreateContextMenu 时,我的 ContextMenuInfo 带有空值。这是我的持有人课程:
public class PlayerHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener {
//private static final String TAG = PlayerHolder.class.getSimpleName();
public TextView playerName;
public TextView playerAge;
public PlayerHolder(View itemView) {
super(itemView);
playerName = (TextView) itemView.findViewById(R.id.player_name);
playerAge = (TextView) itemView.findViewById(R.id.player_age);
itemView.setOnCreateContextMenuListener(this);
}
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
menu.add(0, 1, 0, "Edit");//groupId, itemId, order, title
menu.add(0, 2, 0, "Share");
menu.add(0, 3, 0, "Delete");
}
//@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView …
Run Code Online (Sandbox Code Playgroud) android android-contextmenu navigation-drawer android-recyclerview firebaseui
我正在使用FirebaseRecyclerAdapter
填充RecyclerView
a Fragment
.
这是我的代码
mDatabase = FirebaseDatabase.getInstance().getReference();
myAdapter = new FirebaseRecyclerAdapter<Product, ProductViewHolder>(Product.class,
R.layout.product_item,ProductViewHolder.class,
mDatabase.child("clothes")) {
@Override
protected void populateViewHolder(ProductViewHolder viewHolder, Product model, int position) {
mProgressBar.setVisibility(ProgressBar.INVISIBLE);
viewHolder.name.setText(model.name);
viewHolder.price.setText(model.price);
Glide.with(getActivity()).load(model.imageUri).into(viewHolder.thumbnail);
Log.d("NAME", model.name);
}
};
recyclerView.setAdapter(myAdapter);
Run Code Online (Sandbox Code Playgroud)
问题是,ProgressBar
在第一次启动时保持移动,它永远不会隐藏,RecyclerView
从不显示自己,但如果我退出应用程序并再次启动,RecyclerView
则正确填充,即使屏幕锁定本身并且我解锁它,RecyclerView
也会填充.我糊涂了.
java android android-recyclerview firebase-realtime-database firebaseui
无论如何都要在Firebase UI中设置徽标的大小,以便它不会完全填满视图?
AuthUI.getInstance().createSignInIntentBuilder()
.setProviders(Arrays.asList(
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build()
))
.setIsSmartLockEnabled(!BuildConfig.DEBUG)
.setTheme(R.style.AppTheme_NoActionBar)
.setLogo(R.mipmap.icon_hero_image)
.build(),
RC_SIGN_IN
Run Code Online (Sandbox Code Playgroud) android android-layout firebase firebase-authentication firebaseui
val adapter = FirebaseRecyclerAdapter<Discount, Holder>(
Discount::class.java,
R.layout.fragment_main_day_item,
Holder::class.java,
FirebaseDatabase.getInstance().getReference()
) {
override fun populateViewHolder(holder: Holder, dis: Discount, pos: Int){
}
}
Run Code Online (Sandbox Code Playgroud)
文档在这里
我如何使用 Kotlin 处理这个问题
编辑
val mAdapter = object : FirebaseRecyclerAdapter<Chat, ChatHolder>(
Chat::class.java,
R.layout.fragment_main_day_item,
ChatHolder::class.java,
ref) {
public override fun populateViewHolder(holder: ChatHolder, chat: Chat, position: Int) {
}
}
Run Code Online (Sandbox Code Playgroud)
我将 java 转换为 kotlin 并且它有效。
我目前正在实现 firebase 电话身份验证,并且可以使用 firebase UI 成功实现电话身份验证而无需 swizzling,但从我的研究来看,似乎在不使用 swizzling 的情况下实现 firebase 电话身份验证需要用户允许通知。我知道 firebase 发送了一个不需要通过允许通知来批准的静默通知,但似乎获得该通知的唯一方法是要求用户允许通知。有谁知道如何或是否有可能在不混乱和不要求用户通知权限的情况下做到这一点?
我已添加将通知证书推送到 firebase,并添加了 firebase 电话 ui 文档中列出的所有需要的功能。
在不要求用户允许通知的情况下,电话身份验证文档中列出的此功能不会被调用(用户还必须选择允许)
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// Pass device token to auth
Auth.auth().setAPNSToken(deviceToken, type: AuthAPNSTokenTypeProd)
// Further handling of the device token if needed by the app
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果未调用此函数,则未设置 setAPNSToken,我将不会收到继续进行电话身份验证的静默通知,并且会收到一般错误
身份验证错误:您项目的 Firebase 电话号码身份验证设置似乎有问题,请务必按照https://firebase.google.com/docs/auth/ios/phone-auth 上的说明进行操作
我正在使用FirestoreRecyclerAdapter
.
我能够获得每个模型和文档属性.但我想获得文档ID.
我尝试使用model.
Autosuggestions,但没有文档ID或名称
我有以下DealsHolder类.这是在Kotlin.然而,所有类的其余部分都在java中.
package com.guidoapps.firestorerecycleradaptersample
import com.google.firebase.firestore.IgnoreExtraProperties
@IgnoreExtraProperties
data class DealsResponse(var title:String? = null,
var price:String? = null,
var dealPrice:String? = null,
var image:String? = null,
var description: String? = null)
Run Code Online (Sandbox Code Playgroud)
我在onCreate()中初始化的以下函数
private void getDealsList(){
Query query = db.collection("deals").orderBy("dateTime", Query.Direction.DESCENDING);
FirestoreRecyclerOptions<DealsResponse> response = new FirestoreRecyclerOptions.Builder<DealsResponse>()
.setQuery(query, DealsResponse.class)
.build();
adapter = new FirestoreRecyclerAdapter<DealsResponse, MainActivity.DealsHolder>(response) {
@Override
public void onBindViewHolder(MainActivity.DealsHolder holder, int position, DealsResponse model) {
progressBar.setVisibility(View.GONE);
holder.textTitle.setText(model.getTitle());
holder.textPrice.setText(model.getPrice());
holder.textDesc.setText(model.getDescription());
holder.textDealPrice.setText(model.getDealPrice());
holder.textPrice.setPaintFlags(holder.textPrice.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
Glide.with(getApplicationContext())
.load(model.getImage())
.into(holder.imageView); …
Run Code Online (Sandbox Code Playgroud) 我已经RecyclerView
用FirebaseUI-Android库实现了。
RecyclerView
一旦使用,我的实时数据就会发生变化FirebaseRecyclerAdapter
在Collection中,数据文档的字段类型为Boolean,Integer,Reference。
我想使用该参考获取数据populateViewHolder
有addSnapshotListener
。
帮我!这是我的代码:
FirebaseRecyclerAdapter<Conv, ConvViewHolder> firebaseConvAdapter = new FirebaseRecyclerAdapter<Conv, ConvViewHolder>(
Conv.class,
R.layout.users_single_layout,
ConvViewHolder.class,
conversationQuery
) {
@Override
protected void populateViewHolder(final ConvViewHolder convViewHolder, final Conv conv, int i) {
final String list_user_id = getRef(i).getKey();
final DocumentReference docRef = db.collection("cities").document(list_user_id);
docRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot snapshot,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w(TAG, "Listen failed.", e);
return;
}
if (snapshot != …
Run Code Online (Sandbox Code Playgroud) 我正在使用,FirebaseRecyclerOptions
因为我升级到新的FirebaseUI 3.0版本,但现在我无法从数据库中检索任何内容.过去在旧FirebaseRecylcerAdapter
方法中使用的代码相同.好像它甚至没有进入onBindViewHolder
.
初始化
linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setReverseLayout(true);
linearLayoutManager.setStackFromEnd(true);
recyclerView = findViewById(R.id.main_recycler);
recyclerView.hasFixedSize();
recyclerView.setLayoutManager(linearLayoutManager);
queryDatbase = mDatabase.child("chatlist").child(cUser);
queryDatbase.keepSynced(true);
Query query = queryDatbase.orderByChild("time");
query.keepSynced(true);
Run Code Online (Sandbox Code Playgroud)
FirebaseRecyclerAdapter代码
firebaseoptions = new FirebaseRecyclerOptions.Builder<ConvModel>().setQuery(query,ConvModel.class).build();
firebaseadapter = new FirebaseRecyclerAdapter<ConvModel, ChatlistHolder>(firebaseoptions) {
@Override
protected void onBindViewHolder(final ChatlistHolder holder, int position,final ConvModel model) {
final String each_user_id = firebaseadapter.getRef(position).getKey();
Toast.makeText(MainActivity.this, each_user_id, Toast.LENGTH_SHORT).show();
//region SET EACH USER IMAGE and USERNAME
assert each_user_id != null;
mDatabase.child("users").child(each_user_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) { …
Run Code Online (Sandbox Code Playgroud) android firebase android-recyclerview firebase-realtime-database firebaseui