我正在尝试更改我的firebase实时数据库规则,以便我可以从经过身份验证和未经身份验证的用户访问它,我将其更改为
{
"rules": {
".read": "auth == null",
".write": "auth != null" ||"auth==null"
}
}
Run Code Online (Sandbox Code Playgroud)
但是或者运营商||没有工作.我该怎么办?
谢谢!
android firebase firebase-authentication firebase-realtime-database
我正在使用FirebaseRecyclerAdapter填充RecyclerViewa 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
我已经解析了一些XML数据Asynctask并将其打印在日志中,但每当我尝试将ArrayList数据复制到我的Activity中时,它总是保持为空.
这是代码,
public class MainActivity extends AppCompatActivity {
static ArrayList<NewsItems>myData=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ReadRss readRss = new ReadRss(this);
readRss.execute();
Log.d("TAG", String.valueOf(myData.size()));//This stays empty
}
public static void getData(ArrayList<NewsItems>items){
for (int i=0; i<items.size(); i++){
myData.add(items.get(i));
}
}
class ReadRss extends AsyncTask<Void, Void, Void>{
ArrayList<NewsItems>feedItems = new ArrayList<>();
Context context;
String address = "http://www.thedailystar.net/frontpage/rss.xml";
ProgressDialog progressDialog;
URL url;
public ReadRss(Context context) {
this.context = context;
progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Loading..."); …Run Code Online (Sandbox Code Playgroud)