- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想做的是先检查用户输入的推荐代码是否存在。但问题是,即使我输入的文本不包含在数据库中,它也总是在 addOnSuccessListener 上进行。
//不要介意下一段。我只需要添加更多描述来保存编辑//
我想做的是先检查用户输入的推荐代码是否存在。但问题是,即使我输入的文本不包含在数据库中,它也总是在 addOnSuccessListener 上进行。
我想做的是先检查用户输入的推荐代码是否存在。但问题是,即使我输入的文本不包含在数据库中,它也总是在 addOnSuccessListener 上进行。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference collectionReference = db.collection("Buyers");
Query usersDataQuery = collectionReference.whereEqualTo("referrals.userReferralCOde", referalCode);
usersDataQuery.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
Users users = new Users();
String referedByID = users.getBuyerID();
loadingBar = KProgressHUD.create(FirstTimeUserActivity.this)
.setStyle(KProgressHUD.Style.SPIN_INDETERMINATE)
.setLabel("Please wait")
.setDetailsLabel("Creating your Account...")
.show();
//withReferrals(cfn, cln, referedByID, email, status, id);
StyleableToast.makeText(FirstTimeUserActivity.this, "Pumasok.", Toast.LENGTH_LONG, R.style.successtoast).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
StyleableToast.makeText(FirstTimeUserActivity.this, "Please enter a Valid Referral Code.", Toast.LENGTH_LONG, R.style.errortoast).show();
}
public class Users {
private String BuyerID, Email, FirstName, LastName, ImageUrl, AccountType, CPoints, WalletAccount;
private double Latitude, Longitude;
private @ServerTimestamp Date timestamp;
private ReferralModel Referrals;
public Users(){
}
public Users(String buyerID, String email, String firstName, String lastName, String imageUrl, String accountType, String CPoints, String walletAccount, double latitude, double longitude, Date timestamp, ReferralModel referrals) {
BuyerID = buyerID;
Email = email;
FirstName = firstName;
LastName = lastName;
ImageUrl = imageUrl;
AccountType = accountType;
this.CPoints = CPoints;
WalletAccount = walletAccount;
Latitude = latitude;
Longitude = longitude;
this.timestamp = timestamp;
Referrals = referrals;
}
public String getBuyerID() {
return BuyerID;
}
public void setBuyerID(String buyerID) {
BuyerID = buyerID;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
public String getFirstName() {
return FirstName;
}
public void setFirstName(String firstName) {
FirstName = firstName;
}
public String getLastName() {
return LastName;
}
public void setLastName(String lastName) {
LastName = lastName;
}
public String getImageUrl() {
return ImageUrl;
}
public void setImageUrl(String imageUrl) {
ImageUrl = imageUrl;
}
public String getAccountType() {
return AccountType;
}
public void setAccountType(String accountType) {
AccountType = accountType;
}
public String getCPoints() {
return CPoints;
}
public void setCPoints(String CPoints) {
this.CPoints = CPoints;
}
public String getWalletAccount() {
return WalletAccount;
}
public void setWalletAccount(String walletAccount) {
WalletAccount = walletAccount;
}
public double getLatitude() {
return Latitude;
}
public void setLatitude(double latitude) {
Latitude = latitude;
}
public double getLongitude() {
return Longitude;
}
public void setLongitude(double longitude) {
Longitude = longitude;
}
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
public ReferralModel getReferrals() {
return Referrals;
}
public void setReferrals(ReferralModel referrals) {
Referrals = referrals;
}
});[![enter image description here][1]][1]
[1]: /image/Jr9Vm.png
最佳答案
除了您的代码 referrals.userReferralCOde
中有错字,因为它应该是 referrals.userReferralCode
,您没有得到任何 Users
对象,因为您正在创建一个新对象。您只需使用 addOnCompleteListener
即可看到 QuerySnapshot
对象包含来自数据库的数据。要查看结果,您应该进行迭代,如以下代码行所示:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference buyersReference = rootRef.collection("Buyers");
Query usersDataQuery = buyersReference.whereEqualTo("referrals.userReferralCode", "123");
usersDataQuery.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
String firstName = document.getString("firstName");
Log.d(TAG, firstName);
}
}
}
});
您的 logcat 中的结果将是所有 userReferralCode
等于 123
的用户。另请注意,您类(class)中的字段不与数据库中的字段对应。为此,请参阅我在以下帖子中的回答:
因此,如果您想将数据作为 Users
类的对象获取,请使用该答案中的建议。
关于java - 为什么我不能在查询 Firestore 中使用 whereEqualTo 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57787451/
我正在尝试从解析中检索信息。特别是,我添加了一个条件,它只会返回选择相同 Activity 的用户列表。 我尝试了下面的代码,但它似乎确实有效,因为该条件返回一个空列表。 ParseQuery que
我有一个 Parse 类,它有一个指向另一个类的指针...我想计算 A 类中具有等于 B 类中某个字段的特定值的对象... 例如。 ParseQuery query = ParseQuery.getQ
我曾希望它会这么简单,但在尝试运行查询时出现以下异常:com.parse.ParseException:相等性需要一个值而不是 [value0, value1, ...] 如何获得具有这种情况的数据对
嗨,我有这个确切的数据库模式,其中有一个名为“状态”字段的文档,该字段有不同的值,它可以是“待处理”、“已发送”等。 我有一个 FirebaseUI Recycler,我想加载包含这两个值的所有文档。
我正在使用 JS 解析,并且我正在尝试建立反向关系... 我有以下表格.. 用户 优惠 User 表有一个 relationship 列,用于将用户与优惠相关联,我有两种类型的关系 used_offe
我有一个以city 作为字段的文档。我想查询一个包含 的文档 城市==“东京”和城市==“大阪”。 如何做到这一点? 我已经尝试过这个: query = ref .whereE
我有 100 个元素的集合。在这个集合中,只有两个元素具有字段 available设置为真。如果我使用这个查询: db.collection("elements").whereEqualTo("ava
我看过 this question before for an earlier version of Firebase不再适用于 Firebase Cloud Firestore。 我想进行一个查询,
我想做的是先检查用户输入的推荐代码是否存在。但问题是,即使我输入的文本不包含在数据库中,它也总是在 addOnSuccessListener 上进行。 //不要介意下一段。我只需要添加更多描述来保存编
考虑到多个 whereArrayContains() 不起作用,我在嵌套 HashMap 上使用多个 whereEqualTo() 时遇到问题。 我正在使用 firebase 制作简单的聊天应用程序,
我想查询我的锻炼 Collection 以获取日常锻炼中的最新锻炼。这意味着我使用 whereEqualTo 我的routineKey 进行查询,按开始时间戳按降序排序,然后限制为 1,然后获取锻炼的
我想查询我的锻炼 Collection 以获取例程中的最新锻炼。这意味着我用 whereEqualTo 查询我的 routineKey,按开始时间戳降序排列,然后限制为 1,然后获取锻炼的第一个键/I
我是一名优秀的程序员,十分优秀!