pip также является пакетом python. Таким образом, самый простой способ установки модулей в конкретную версию python будет ниже
python2.7 /usr/bin/pip install foo
или
python2.7 -m pip install foo
Я хочу получить данные в коллекции заказов только для коллекции заказов fruit_ID
blockquote>Хорошо, вы хотите получить fruit_ID?
равняется идентификатору документа коллекции Продавцов / Фруктов и добавляется в представление переработчика
blockquote>, и вы хотите получить fruit_ID, равный Продавцам / Фруктам? [1136 ]
как
if (fruit_ID.equals(sellerFruits_ID) {// get fruit_ID}
Я постараюсь ответить на него.
ПРОБЛЕМА
1. Вы, как продавец, имеете
seller uid
в своей коллекцииSellers
и хотите получитьV4x1Dh..
2. У вас есть
buyer uid
в вашейOrders
коллекции и вы хотите получить83Fmf..
3. Вы хотите получить Банан в Продавцах / Фруктах, который Банан как id.
И наконец, вы хотите загрузить данные
Sellers/Fruits
вrecyclerView
, потому чтовы хотите получать данные только в коллекции заказов fruit_ID
< / blockquote>ОТВЕТ
Ответ номер один: Пожалуйста, найдите продавцов
ids
и получитеV4x1Dh
на основеViewHolder position
, что я объясню позже.Ответ номер два: Пожалуйста, получите Заказы
ids
и получите83Fmf
на основеViewHolder position
, что я объясню позже.Ответ номер два: Пожалуйста, возьмите фрукты продавцов
ids
, скажем,sellerFruit_ID
и получитеBanana
на основеViewHolder position
, что я объясню позже. ВНИМАНИЕ: поскольку банан в документе, это будет id.ДЕТАЛИ:
Извлечение продавцов
ids
и получениеV4x1Dh
:firebaseFirestore .collection("Sellers") .addSnapshotListener(new EventListener<QuerySnapshot>(){ @Override public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e){ for (DocumentChange doc : documentSnapshots.getDocumentChanges()){ if (doc.getType() == DocumentChange.Type.ADDED){ // RETRIEVING Orders id String orders_ID = doc.getDocument().getId(); YourContentOrdersHere contentOrders = doc.getDocument().toObject(YourContentOrdersHere.class).withId(orders_ID); // RETRIEVING Sellers id String sellers_ID = doc.getDocument().getId(); YourContentSellersHere contentSellers = doc.getDocument().toObject(YourContentSellersHere.class).withId(sellers_ID); contentListOrders.add(contentOrders); //example: List<YourContentOrdersHere> contentList adapter.notifyDataSetChanged(); // before of course, you add this in onCreate adapterOrders = new YourAdapterOrders(contentListOrders); contentListSellers.add(contents); //example: List<YourContentSellersHere> contentList adapter.notifyDataSetChanged(); // before of course, you add this in onCreate adapterSellers = new YourAdapterSellers(contentListSellers); } } } });
убедитесь, что ваш класс контента расширяет идентификаторы
[ 111]и создайте OrdersId.class
public class OrdersId{ @Exclude public String OrdersId; public <T extends OrdersId> T withId(@NonNull final String id) { this.OrdersId = id; return (T) this; } }
и, наконец, из класса вашего адаптера, получающего OrdersId. Как пример:
@Override public void onBindViewHolder(ViewHolder holder, int position) { // GET YOUR `Sellers` id based position and getSellerId() from getter of your content class String sellers_ID = contentListSeller.get(position).getSellerId(); // don't forget List<YourContentSellers> contentList = new ArrayList<>(); firebaseFirestore .collection("Sellers") .document(sellers_ID) .collection("Fruits") .document("Banana") // STORE 'LIKE TAP' USING LIKE BUTTON holder.likeHome.seOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ /* RETRIEVING VALUE UNDER currentUserId */ firebaseFirestore.collection("Posts/" + postId + "/Likes").document(currentUserId).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>(){ @Override public void onComplete(@NonNull Task<DocumentSnapshot> task){ if (!task.getResult().exists()) { /* STORE NEW VALUE */ Map<String, Object> likesMap = new HashMap<>(); likesMap.put("timestamp", FieldValue.serverTimestamp); firebaseFirestore.collection("Posts/" + postId + "/Likes").document(currentUserId).set(likesMap); } else { // retrieve like timestamp String whenToLike = task.getResult().getString("timestamp"); holder.setWhenToLike(whenToLike); /* DELETE VALUE */ firebaseFirestore.collection("Posts/" + postId + "/Likes").document(currentUserId).delete(); } } }); } }); }