Это мое правило базы данных Firebase Realtime, предположим, что здесь два пользователя устройства A и B, A добавляет данные через приложение в базу данных firebase realTime, поэтому B читает те данные, которые добавлены пользователем A, тот же B добавляет данные через приложение Таким образом, A читает эти данные, но оба пользователя A или B удаляют только собственные данные, которые он ввел, A удаляет только собственные данные, а B удаляет только собственные данные, но оба пользователя читают данные друг друга (означает, что данные вводятся пользователь виден миру) .. Итак, какое правило применимо здесь. Например, в разделе комментариев на Facebook комментарий виден всем, но этот комментарий удален администратором или теми, кто делает этот комментарий, поэтому я хочу вот так, вот мой код правила для данных
{
"rules": {
"$uid": {
".write": "$uid === auth.uid",
".read": "auth != null"
}
}
}
это настройка firebase и firebaseUser, а потомок - это данные, которые находятся в onCreate
FirebaseUser mUser = mAuth.getCurrentUser ();
String uid = mUser.getUid ();
myRef = FirebaseDatabase.getInstance ().getReference ( "data" ).child ( uid );
myRef.keepSynced ( true );//for syncronize the firebase data
, а данные отправляются в firebase, вот так, вот мой код java для отображения данных из firebase в Пользовательский интерфейс и мое приложение - поддержка Google и Facebook. Войдите,
public void ShowData()
{
query1 = myRef.orderByChild ( "dateTime" );
options = new FirebaseRecyclerOptions.Builder < modelClass > ().setQuery ( query1 , modelClass.class ).build ();
adapter = new FirebaseRecyclerAdapter < modelClass, MyVIewHolder > ( options )
{
@Override
public void onDataChanged()
{
super.onDataChanged ();
}
@Override
protected void onBindViewHolder(@NonNull final MyVIewHolder holder , final int position , @NonNull modelClass model)
{
holder.setFoodPost ( model ); //for set all data to view
. Это открыто, когда пользователь делает длинный щелчок на данных, здесь окно удаления (alertDialog) открывает и удаляет определенные данные, но я хочу, чтобы окно удаления не открывается, когда другой пользователь хочет удалить данные другого лица, означает, что пользователь может удалить только собственные данные (удаление оповещения открывается, когда пользователь хочет удалить собственные данные), если он хочет удалить данные другого человека, окно удаления не открывается, так что я должен сделать здесь, и этот код также находится в onBilndViewHolder
//for longPress on particular view
holder.itemView.setOnLongClickListener ( new View.OnLongClickListener () {
@Override
public boolean onLongClick(View view) {
post_key = getRef ( position ).getKey ();
openDeleteWindow ();
return true;
}
}
} );
@NonNull
@Override
public MyVIewHolder onCreateViewHolder(@NonNull ViewGroup parent , int viewType)
{
View v = LayoutInflater.from ( parent.getContext () ).inflate (
R.layout.recycler_view_item_layout , parent , false );
Log.d ( "firee","orCreate" );
return new MyVIewHolder ( v );
}
};
adapter.startListening (); //if you use FirebaseRecyclerAdapter then this is nessasry
recyclerView.setAdapter ( adapter ); //set adapter into recyclerView
это моя база огня * 10 13 *
datamyapp-cbfba
|-- data
|-WNOAsWDaVlQXq2DssE9AsUCw1jB3 <- Device A (googleSignInKey)
| |-M1UGU8pMJiNGd5zsG_r
| |-college:"ABES"
| |-contact:"956379797"
| |-dateTime:"03-03-2020 12:52:05"
| |-food: "Burger"
| |-name:"Vishal"
|
|-XiFNOWYYFHhjRdHx7AGOtchjN4x2 <- Device B (googleSignInKey)
|-M1UGqWNjWVIlbtluD6D
|-college:"TMU"
|-contact:"9578379797"
|-dateTime:"03-03-2020 12:50:05"
|-food: "Pizza"
|-name:"Ankit"