2017-09-16 2 views
0

Angenommen, wenn ich mich mit Google anmelden in meiner App anmeldet dann bestelle ich das Essen und wenn jemand bestellt Essen aus anderen App mit anderen Konto, wenn Benutzer Bestellungen dann meine Bestellungen können mir seine zeigen Bestellungen und seine Bestellungen werden in meine Bestellungen geladen. So kann jeder Benutzer alle Bestellungen sehen. hilf mir, dieses Problem zu lösen."Meine Bestellungen" zeigt everyones Bestellungen auf meiner Seite

package com.food.sheenishere.stark; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 

import com.firebase.ui.database.FirebaseRecyclerAdapter; 
import com.food.sheenishere.stark.Common.Common; 
import com.food.sheenishere.stark.Model.Request; 
import com.food.sheenishere.stark.ViewHolder.OrderViewHolder; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 

public class OrderStatus extends AppCompatActivity { 

    public RecyclerView recyclerView; 
    public RecyclerView.LayoutManager layoutManager; 

    FirebaseRecyclerAdapter<Request,OrderViewHolder> adapter; 
    FirebaseDatabase database; 
    DatabaseReference requests; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_order_status); 
     //firebase 
     database=FirebaseDatabase.getInstance(); 
     requests=database.getReference("Requests"); 

     recyclerView= (RecyclerView)findViewById(R.id.listOrders); 
     recyclerView.setHasFixedSize(true); 
     layoutManager= new LinearLayoutManager(this); 
     recyclerView.setLayoutManager(layoutManager); 

     loadOrders(); 


    } 

    private void loadOrders() { 


     adapter = new FirebaseRecyclerAdapter<Request, OrderViewHolder>(
       Request.class, 
       R.layout.order_layout, 
       OrderViewHolder.class, 
       requests.orderByChild("name") 

     ) { 



      @Override 
      protected void populateViewHolder(OrderViewHolder viewHolder, Request model, int position) { 
       viewHolder.txtOrderId.setText(adapter.getRef(position).getKey()); 
       viewHolder.txtOrderStatus.setText(convertCodeToStatus(model.getStatus())); 
       viewHolder.txtOrderAddress.setText(model.getAddress()); 
       viewHolder.txtOrderPhone.setText(model.getPhone()); 
       viewHolder.txtOrderName.setText(model.getName()); 
      } 
     }; 
     recyclerView.setAdapter(adapter); 
    } 

    private String convertCodeToStatus(String status) { 
     if (status.equals("0")) 
      return "placed "; 
     else if (status.equals("1")) 
      return "On my way"; 
     else 
      return "Shipped "; 
    } 
} 

com.food.sheenishere.stark.Model.Request

package com.food.sheenishere.stark.Model; 

import java.util.List; 

/** 
* Created by WAHDAT KASHMIRI on 12-09-2017. 
*/ 

public class Request { 
    private String phone; 
    private String name; 
    private String address; 
    private String total; 
    private String status; 
    private List<Order> foods; //list of food order 


    public Request() { 
    } 


    public Request(String phone, String name, String address, String total, List<Order> foods) { 
     this.phone = phone; 
     this.name = name; 
     this.address = address; 
     this.total = total; 
     this.status = "0"; //default is 0, 0:placed, 1 : shipping ,2:shipped 
     this.foods = foods; 
    } 

    public String getStatus() { 
     return status; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 

    public String getPhone() { 
     return phone; 
    } 

    public void setPhone(String phone) { 
     this.phone = phone; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getAddress() { 
     return address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public String getTotal() { 
     return total; 
    } 

    public void setTotal(String total) { 
     this.total = total; 
    } 

    public List<Order> getFoods() { 
     return foods; 
    } 

    public void setFoods(List<Order> foods) { 
     this.foods = foods; 
    } 
} 
+0

Ihre Anfragen, eine Art und Weise enthalten Sie zu identifizieren, wer Ordnung ist? Sie würden dieses Feld verwenden, um nur die Bestellungen für den Benutzer abzurufen, den Sie anzeigen möchten. –

+0

Herr, gib mir eine Idee, wie man Hut macht –

+0

Bitte poste deinen Code für com.food.sheenishere.stark.Model.Request –

Antwort

0

Ich würde vorschlagen, eine Benutzer-ID in Ihre Anfrage Modell hinzufügen.

private String userId; 

Füllen Sie das mit dem Benutzer, der die Anforderung erstellt hat. Wenn Sie später Datensätze abrufen, die angezeigt werden sollen, rufen Sie nur Datensätze für den aktuell angemeldeten Benutzer ab unter userId.

Wenn Sie mit Android Google Sign On finden Sie in diesem Abschnitt der Dokumentation für eine Quelle der eindeutige Kennung für den Benutzer:

https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInAccount#getId()

Verwandte Themen