Java Firebase:如何确定不同父级中的重复
我有以下代码来拒绝“Admin”Firebase中的重复项:Java Firebase:如何确定不同父级中的重复,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我有以下代码来拒绝“Admin”Firebase中的重复项: public static void checkForDuplicateTweet() { Query adminQuery = dbRefAdminFeed.orderByChild("tweetStatusID").equalTo(TweetData.tweetStatusID); Query feedQuery = dbRefFeed.orderByChild("tweetS
public static void checkForDuplicateTweet()
{
Query adminQuery = dbRefAdminFeed.orderByChild("tweetStatusID").equalTo(TweetData.tweetStatusID);
Query feedQuery = dbRefFeed.orderByChild("tweetStatusID").equalTo(TweetData.tweetStatusID);
adminQuery.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
if (dataSnapshot.exists())
{
boolean isFirst = true;
for (DataSnapshot postSnapshot : dataSnapshot.getChildren())
{
TweetData tweetData = postSnapshot.getValue(TweetData.class);
if (isFirst)
{
isFirst = false;
}
else
{
removeTweetFromFirebase(Objects.requireNonNull(tweetData).tweetKey);
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
}
如何检查不同的父级,以查看该父级下是否存在具有以下结构的tweetStatusID
你已经到了一半。要检查该值是否存在于两个父项下,必须对每个父项运行查询。因此,只要确定值存在于
dbRefFeed
下,就可以在dbRefFeed
上运行查询
Query adminQuery = dbRefAdminFeed.orderByChild("tweetStatusID").equalTo(TweetData.tweetStatusID);
Query feedQuery = dbRefFeed.orderByChild("tweetStatusID").equalTo(TweetData.tweetStatusID);
adminQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot adminSnapshot) {
if (adminSnapshot.exists()) {
feedQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot feedSnapshot) {
if (feedSnapshot.exists()) {
...
}
}
}
}